From 2d2e3640c9c9d71f5d944e273d3cd61ce9f9f99f Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Thu, 27 Oct 2022 21:39:50 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20Sqlite=20=E6=98=A0?= =?UTF-8?q?=E5=B0=84=20TimeSpan=20=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs | 2 +- Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs | 2 +- Providers/FreeSql.Provider.Sqlite/SqliteUtils.cs | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs index 1f44d660..3ccd68bc 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs @@ -335,7 +335,7 @@ namespace FreeSql.Tests.Sqlite ShortNullable = short.MinValue, String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", Char = 'X', - TimeSpan = TimeSpan.FromSeconds(999), + TimeSpan = TimeSpan.FromMilliseconds(999500), TimeSpanNullable = TimeSpan.FromSeconds(60), UInt = uint.MaxValue, UIntNullable = uint.MinValue, diff --git a/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs b/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs index 6845d10d..be6f2f5a 100644 --- a/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs +++ b/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs @@ -33,7 +33,7 @@ namespace FreeSql.Sqlite { typeof(float).FullName, CsToDb.New(DbType.Single, "float","float NOT NULL", false, false, 0) },{ typeof(float?).FullName, CsToDb.New(DbType.Single, "float","float", false, true, null) }, { typeof(decimal).FullName, CsToDb.New(DbType.Decimal, "decimal", "decimal(10,2) NOT NULL", false, false, 0) },{ typeof(decimal?).FullName, CsToDb.New(DbType.Decimal, "decimal", "decimal(10,2)", false, true, null) }, - { typeof(TimeSpan).FullName, CsToDb.New(DbType.Time, "bigint","bigint NOT NULL", false, false, 0) },{ typeof(TimeSpan?).FullName, CsToDb.New(DbType.Time, "bigint", "bigint",false, true, null) }, + { typeof(TimeSpan).FullName, CsToDb.New(DbType.Time, "decimal","decimal(18,3) NOT NULL", false, false, 0) },{ typeof(TimeSpan?).FullName, CsToDb.New(DbType.Time, "decimal", "decimal(18,3)",false, true, null) }, { typeof(DateTime).FullName, CsToDb.New(DbType.DateTime, "datetime", "datetime NOT NULL", false, false, new DateTime(1970,1,1)) },{ typeof(DateTime?).FullName, CsToDb.New(DbType.DateTime, "datetime", "datetime", false, true, null) }, { typeof(byte[]).FullName, CsToDb.New(DbType.Binary, "blob", "blob", false, null, new byte[0]) }, diff --git a/Providers/FreeSql.Provider.Sqlite/SqliteUtils.cs b/Providers/FreeSql.Provider.Sqlite/SqliteUtils.cs index 4e036627..631f6cb5 100644 --- a/Providers/FreeSql.Provider.Sqlite/SqliteUtils.cs +++ b/Providers/FreeSql.Provider.Sqlite/SqliteUtils.cs @@ -33,8 +33,8 @@ namespace FreeSql.Sqlite break; case DbType.Time: if (value == null) value = null; - else value = ((TimeSpan)value).Ticks / 10000; - dbtype = DbType.Int64; + else value = ((TimeSpan)value).TotalSeconds; + dbtype = DbType.Decimal; break; } #if MicrosoftData @@ -65,8 +65,8 @@ namespace FreeSql.Sqlite break; case DbType.Time: if (value == null) value = null; - else value = ((TimeSpan)value).Ticks / 10000; - dbtype = DbType.Int64; + else value = ((TimeSpan)value).TotalSeconds; + dbtype = DbType.Decimal; break; } }