diff --git a/Extensions/FreeSql.Generator/FreeSql.Generator.csproj b/Extensions/FreeSql.Generator/FreeSql.Generator.csproj index 3de0e6bd..2869de25 100644 --- a/Extensions/FreeSql.Generator/FreeSql.Generator.csproj +++ b/Extensions/FreeSql.Generator/FreeSql.Generator.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1;net50 + netcoreapp3.1;net60 true true true @@ -19,8 +19,8 @@ - - + + diff --git a/FreeSql.DbContext/DbContext/DbContext.cs b/FreeSql.DbContext/DbContext/DbContext.cs index 901f0b8c..1415eaa1 100644 --- a/FreeSql.DbContext/DbContext/DbContext.cs +++ b/FreeSql.DbContext/DbContext/DbContext.cs @@ -217,7 +217,7 @@ namespace FreeSql /// 比较实体,计算出值发生变化的属性,以及属性变化的前后值 /// /// 最新的实体对象,它将与附加实体的状态对比 - /// + /// key: 属性名, value: [旧值, 新值] public Dictionary CompareState(TEntity newdata) where TEntity : class { CheckEntityTypeOrThrow(typeof(TEntity)); diff --git a/FreeSql.DbContext/DbSet/DbSet.cs b/FreeSql.DbContext/DbSet/DbSet.cs index 26bdc091..97266db6 100644 --- a/FreeSql.DbContext/DbSet/DbSet.cs +++ b/FreeSql.DbContext/DbSet/DbSet.cs @@ -223,7 +223,7 @@ namespace FreeSql /// 比较实体,计算出值发生变化的属性,以及属性变化的前后值 /// /// 最新的实体对象,它将与附加实体的状态对比 - /// + /// key: 属性名, value: [旧值, 新值] public Dictionary CompareState(TEntity newdata) { if (newdata == null) return null; diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 23060b9c..da7ace6b 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -67,7 +67,7 @@ 比较实体,计算出值发生变化的属性,以及属性变化的前后值 最新的实体对象,它将与附加实体的状态对比 - + key: 属性名, value: [旧值, 新值] @@ -142,7 +142,7 @@ 比较实体,计算出值发生变化的属性,以及属性变化的前后值 最新的实体对象,它将与附加实体的状态对比 - + key: 属性名, value: [旧值, 新值] @@ -333,7 +333,7 @@ 比较实体,计算出值发生变化的属性,以及属性变化的前后值 最新的实体对象,它将与附加实体的状态对比 - + key: 属性名, value: [旧值, 新值] @@ -538,14 +538,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql.DbContext/Repository/Repository/IBaseRepository.cs b/FreeSql.DbContext/Repository/Repository/IBaseRepository.cs index a62092a7..e78a3db6 100644 --- a/FreeSql.DbContext/Repository/Repository/IBaseRepository.cs +++ b/FreeSql.DbContext/Repository/Repository/IBaseRepository.cs @@ -62,7 +62,7 @@ namespace FreeSql /// 比较实体,计算出值发生变化的属性,以及属性变化的前后值 /// /// 最新的实体对象,它将与附加实体的状态对比 - /// + /// key: 属性名, value: [旧值, 新值] Dictionary CompareState(TEntity newdata); int Update(TEntity entity); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite/Properties/launchSettings.json b/FreeSql.Tests/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite/Properties/launchSettings.json new file mode 100644 index 00000000..33504c94 --- /dev/null +++ b/FreeSql.Tests/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "WSL": { + "commandName": "WSL2", + "distributionName": "" + } + } +} \ No newline at end of file diff --git a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj index 7497c508..37eba2fa 100644 --- a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj +++ b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj @@ -17,7 +17,7 @@ - + diff --git a/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj b/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj index cef5e976..73b5ffa9 100644 --- a/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj +++ b/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj @@ -26,7 +26,7 @@ - + diff --git a/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj b/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj index ad0d786d..d0dd6bac 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj +++ b/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj @@ -30,8 +30,8 @@ - - + + diff --git a/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj b/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj index 9dfbd3c8..ff07cb6c 100644 --- a/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj +++ b/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj @@ -34,7 +34,7 @@ - + diff --git a/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj b/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj index dac6330c..10df19c0 100644 --- a/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj +++ b/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj @@ -29,7 +29,7 @@ - + @@ -42,5 +42,8 @@ net40 - + + net60;microsoft + + diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerAdo.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerAdo.cs index 40423ef5..dd318808 100644 --- a/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerAdo.cs +++ b/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerAdo.cs @@ -72,6 +72,15 @@ namespace FreeSql.SqlServer if (param.Equals(DateTimeOffset.MinValue) == true) param = new DateTimeOffset(new DateTime(1970, 1, 1), TimeSpan.Zero); return string.Concat("'", ((DateTimeOffset)param).ToString("yyyy-MM-dd HH:mm:ss.fff zzzz"), "'"); } +#if net60 + else if (param is DateOnly || param is DateOnly?) + { + if (param.Equals(DateOnly.MinValue) == true) param = new DateOnly(1970, 1, 1); + return string.Concat("'", ((DateOnly)param).ToString("yyyy-MM-dd"), "'"); + } + else if (param is TimeOnly || param is TimeOnly?) + return ((TimeOnly)param).ToTimeSpan().TotalSeconds; +#endif else if (param is TimeSpan || param is TimeSpan?) return ((TimeSpan)param).TotalSeconds; else if (param is byte[]) diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs index 08771868..9a8d6358 100644 --- a/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs +++ b/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs @@ -37,6 +37,9 @@ namespace FreeSql.SqlServer { typeof(TimeSpan).FullName, CsToDb.New(SqlDbType.Time, "time","time NOT NULL", false, false, 0) },{ typeof(TimeSpan?).FullName, CsToDb.New(SqlDbType.Time, "time", "time",false, true, null) }, { typeof(DateTime).FullName, CsToDb.New(SqlDbType.DateTime, "datetime", "datetime NOT NULL", false, false, new DateTime(1970,1,1)) },{ typeof(DateTime?).FullName, CsToDb.New(SqlDbType.DateTime, "datetime", "datetime", false, true, null) }, { typeof(DateTimeOffset).FullName, CsToDb.New(SqlDbType.DateTimeOffset, "datetimeoffset", "datetimeoffset NOT NULL", false, false, new DateTimeOffset(new DateTime(1970,1,1), TimeSpan.Zero)) },{ typeof(DateTimeOffset?).FullName, CsToDb.New(SqlDbType.DateTimeOffset, "datetimeoffset", "datetimeoffset", false, true, null) }, +#if net60 + { typeof(DateOnly).FullName, CsToDb.New(SqlDbType.Date, "date", "date NOT NULL", false, false, new DateTime(1970,1,1)) },{ typeof(DateOnly?).FullName, CsToDb.New(SqlDbType.Date, "date", "date", false, true, null) }, +#endif { typeof(byte[]).FullName, CsToDb.New(SqlDbType.VarBinary, "varbinary", "varbinary(255)", false, null, new byte[0]) }, { typeof(string).FullName, CsToDb.New(SqlDbType.NVarChar, "nvarchar", "nvarchar(255)", false, null, "") }, diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerUtils.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerUtils.cs index 19005777..5a692876 100644 --- a/Providers/FreeSql.Provider.SqlServer/SqlServerUtils.cs +++ b/Providers/FreeSql.Provider.SqlServer/SqlServerUtils.cs @@ -113,6 +113,13 @@ namespace FreeSql.SqlServer var ts = (TimeSpan)value; value = $"{ts.Hours}:{ts.Minutes}:{ts.Seconds}.{ts.Milliseconds}"; } +#if net60 + if (type == typeof(TimeOnly) || type == typeof(TimeOnly?)) + { + var ts = (TimeOnly)value; + value = $"{ts.Hour}:{ts.Minute}:{ts.Second}.{ts.Millisecond}"; + } +#endif return string.Format(CultureInfo.InvariantCulture, "{0}", (_orm.Ado as AdoProvider).AddslashesProcessParam(value, type, col)); } } diff --git a/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj b/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj index 8dba7ca1..9ea9840a 100644 --- a/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj +++ b/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj @@ -40,5 +40,8 @@ net40 - + + net60 + +