diff --git a/Examples/aspnetcore_transaction/aspnetcore_transaction.csproj b/Examples/aspnetcore_transaction/aspnetcore_transaction.csproj index af2fe669e..386cf95b0 100644 --- a/Examples/aspnetcore_transaction/aspnetcore_transaction.csproj +++ b/Examples/aspnetcore_transaction/aspnetcore_transaction.csproj @@ -1,7 +1,7 @@  - net5.0 + net8.0 @@ -11,8 +11,8 @@ - - + + diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index 1e1add2b7..0c01dd6f1 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -837,7 +837,7 @@ static void Main(string[] args) var now_to_timezone = ""; - var timeOffset = (int)TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).TotalMinutes; + var timeOffset = (int)DateTime.Now.Subtract(DateTime.UtcNow).TotalMinutes; if (timeOffset == 0) now_to_timezone = "systimestamp()"; else { diff --git a/Examples/base_entity/base_entity.csproj b/Examples/base_entity/base_entity.csproj index e96756659..f1efc7911 100644 --- a/Examples/base_entity/base_entity.csproj +++ b/Examples/base_entity/base_entity.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net8.0 AnyCPU diff --git a/Examples/benchmarker/benchmarker.csproj b/Examples/benchmarker/benchmarker.csproj index 0650d594b..1533a24a2 100644 --- a/Examples/benchmarker/benchmarker.csproj +++ b/Examples/benchmarker/benchmarker.csproj @@ -2,15 +2,15 @@ Exe - net5.0 + net8.0 - - - + + + diff --git a/Examples/dbcontext_01/dbcontext_01.csproj b/Examples/dbcontext_01/dbcontext_01.csproj index a6f778a8e..71be33a82 100644 --- a/Examples/dbcontext_01/dbcontext_01.csproj +++ b/Examples/dbcontext_01/dbcontext_01.csproj @@ -1,7 +1,7 @@  - net5.0 + net8.0 InProcess @@ -12,7 +12,7 @@ - + diff --git a/Examples/efcore_to_freesql/FreeSqlExtensions/CodeFirstExtensions.cs b/Examples/efcore_to_freesql/FreeSqlExtensions/CodeFirstExtensions.cs index 16c870ef9..8fe7bd65c 100644 --- a/Examples/efcore_to_freesql/FreeSqlExtensions/CodeFirstExtensions.cs +++ b/Examples/efcore_to_freesql/FreeSqlExtensions/CodeFirstExtensions.cs @@ -11,7 +11,7 @@ public static class CodeFirstExtensions { - public static void ConfigEntity(this ICodeFirst codeFirst, IModel efmodel) + public static void ConfigEntity(this ICodeFirst codeFirst, IMutableModel efmodel) { foreach (var type in efmodel.GetEntityTypes()) diff --git a/Examples/efcore_to_freesql/efcore_to_freesql.csproj b/Examples/efcore_to_freesql/efcore_to_freesql.csproj index 738b47d0f..cbd2ef6a5 100644 --- a/Examples/efcore_to_freesql/efcore_to_freesql.csproj +++ b/Examples/efcore_to_freesql/efcore_to_freesql.csproj @@ -1,12 +1,12 @@  - net5.0 + net8.0 InProcess - + diff --git a/Examples/orm_vs/orm_vs.csproj b/Examples/orm_vs/orm_vs.csproj index e3ef045bc..5bf7800dd 100644 --- a/Examples/orm_vs/orm_vs.csproj +++ b/Examples/orm_vs/orm_vs.csproj @@ -2,14 +2,12 @@ Exe - net7.0 + net8.0 - - - + diff --git a/Examples/repository_01/repository_01.csproj b/Examples/repository_01/repository_01.csproj index 117523d1e..84662b4e5 100644 --- a/Examples/repository_01/repository_01.csproj +++ b/Examples/repository_01/repository_01.csproj @@ -1,12 +1,12 @@  - net5.0 + net8.0 InProcess - + diff --git a/Examples/restful/restful.csproj b/Examples/restful/restful.csproj index 9cdfdeffe..7d4628eff 100644 --- a/Examples/restful/restful.csproj +++ b/Examples/restful/restful.csproj @@ -1,12 +1,12 @@  - net5.0 + net8.0 InProcess - + diff --git a/Extensions/FreeSql.Extensions.AggregateRoot/FreeSql.Extensions.AggregateRoot.csproj b/Extensions/FreeSql.Extensions.AggregateRoot/FreeSql.Extensions.AggregateRoot.csproj index 3090a1089..69c4d3906 100644 --- a/Extensions/FreeSql.Extensions.AggregateRoot/FreeSql.Extensions.AggregateRoot.csproj +++ b/Extensions/FreeSql.Extensions.AggregateRoot/FreeSql.Extensions.AggregateRoot.csproj @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj b/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj index fc90b85a6..3e34e6f06 100644 --- a/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj +++ b/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj @@ -20,9 +20,11 @@ false latest 3.2.803-preview20231114 + readme.md + diff --git a/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj b/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj index c7723c258..9bad6a06f 100644 --- a/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj +++ b/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj b/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj index c04c022f1..473c6ddda 100644 --- a/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj +++ b/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj @@ -1,7 +1,7 @@ - netstandard2.0;netstandard2.1;net45;net40 + netstandard2.1;netstandard2.0;net45;net40 true FreeSql;ncc;YeXiangQin FreeSql 扩展包,可实现【延时加载】属性. @@ -16,26 +16,22 @@ true true 3.2.803-preview20231114 + readme.md + - - - + + + - - - + ns20;netstandard20 diff --git a/Extensions/FreeSql.Extensions.Linq/FreeSql.Extensions.Linq.csproj b/Extensions/FreeSql.Extensions.Linq/FreeSql.Extensions.Linq.csproj index 6758971b7..ec9140bbb 100644 --- a/Extensions/FreeSql.Extensions.Linq/FreeSql.Extensions.Linq.csproj +++ b/Extensions/FreeSql.Extensions.Linq/FreeSql.Extensions.Linq.csproj @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Extensions/FreeSql.Generator/FreeSql.Generator.csproj b/Extensions/FreeSql.Generator/FreeSql.Generator.csproj index 2ca7cf9e1..44e0709f1 100644 --- a/Extensions/FreeSql.Generator/FreeSql.Generator.csproj +++ b/Extensions/FreeSql.Generator/FreeSql.Generator.csproj @@ -14,8 +14,14 @@ https://github.com/2881099/FreeSql FreeSql DbFirst 实体生成器 3.2.803-preview20231114 + readme.md + + + + + diff --git a/FreeSql.All/FreeSql.All.csproj b/FreeSql.All/FreeSql.All.csproj index 2ae8ea939..a717de578 100644 --- a/FreeSql.All/FreeSql.All.csproj +++ b/FreeSql.All/FreeSql.All.csproj @@ -1,7 +1,7 @@ - netstandard2.0;net45;net40 + netstandard2.1;netstandard2.0;net45;net40 true FreeSql;ncc;YeXiangQin FreeSql 全家桶,懒人专用 @@ -18,9 +18,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/FreeSql.DbContext/FreeSql.DbContext.csproj b/FreeSql.DbContext/FreeSql.DbContext.csproj index 4f81c1230..63a1d7794 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.csproj +++ b/FreeSql.DbContext/FreeSql.DbContext.csproj @@ -1,7 +1,7 @@ - netstandard2.0;net70;net60;net50;netcoreapp31;netcoreapp21;net45;net40 + net8.0;net7.0;net6.0;net5.0;netstandard2.1;netcoreapp3.1;netstandard2.0;net45;net40 true FreeSql;ncc;YeXiangQin FreeSql is the ORM in .NetCore, .NetFramework, And Xamarin. It supports Mysql, Postgresql, SqlServer, Oracle, Sqlite, Firebird, Clickhouse, QuestDB, Odbc, Oledb, 达梦, 人大金仓, 南大通用, 虚谷, 神舟通用, 翰高, And Access @@ -18,9 +18,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + @@ -33,26 +35,25 @@ net40 - + netcoreapp - - - + + - + - + + + + - + - - - diff --git a/FreeSql.Repository/FreeSql.Repository.csproj b/FreeSql.Repository/FreeSql.Repository.csproj index 5c4b1ce41..faef6c072 100644 --- a/FreeSql.Repository/FreeSql.Repository.csproj +++ b/FreeSql.Repository/FreeSql.Repository.csproj @@ -1,7 +1,7 @@ - netstandard2.0;net70;net60;net50;netcoreapp31;netcoreapp21;net45;net40 + net8.0;net7.0;net6.0;net5.0;netcoreapp3.1;netstandard2.1;netstandard2.0;net45;net40 FreeSql;ncc;YeXiangQin FreeSql Implementation of General Repository, Support MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/Clickhouse/QuestDB/达梦/人大金仓/南大通用/虚谷/神舟通用/翰高/Access, and read/write separation、and split table. https://github.com/2881099/FreeSql/wiki/Repository @@ -18,9 +18,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/FreeSql.Tests.VB/FreeSql.Tests.VB.vbproj b/FreeSql.Tests.VB/FreeSql.Tests.VB.vbproj index 56516b149..d28d7d8c8 100644 --- a/FreeSql.Tests.VB/FreeSql.Tests.VB.vbproj +++ b/FreeSql.Tests.VB/FreeSql.Tests.VB.vbproj @@ -1,29 +1,25 @@  - - FreeSql.Tests.VB - net6.0 - false - + + FreeSql.Tests.VB + net8.0 + false + - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + - - - - - - + + + + + + diff --git a/FreeSql.Tests/FreeSql.Tests.DbContext/FreeSql.Tests.DbContext.csproj b/FreeSql.Tests/FreeSql.Tests.DbContext/FreeSql.Tests.DbContext.csproj index a5199d853..28ea2cb1a 100644 --- a/FreeSql.Tests/FreeSql.Tests.DbContext/FreeSql.Tests.DbContext.csproj +++ b/FreeSql.Tests/FreeSql.Tests.DbContext/FreeSql.Tests.DbContext.csproj @@ -1,7 +1,7 @@  - net5.0 + net8.0 false @@ -11,7 +11,7 @@ - + all diff --git a/FreeSql.Tests/FreeSql.Tests.PerformanceTests/FreeSql.Tests.PerformanceTests.csproj b/FreeSql.Tests/FreeSql.Tests.PerformanceTests/FreeSql.Tests.PerformanceTests.csproj index f6d5e5b9f..5e9b13c81 100644 --- a/FreeSql.Tests/FreeSql.Tests.PerformanceTests/FreeSql.Tests.PerformanceTests.csproj +++ b/FreeSql.Tests/FreeSql.Tests.PerformanceTests/FreeSql.Tests.PerformanceTests.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 false @@ -12,7 +12,7 @@ - + all diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Custom/FreeSql.Tests.Provider.Custom.csproj b/FreeSql.Tests/FreeSql.Tests.Provider.Custom/FreeSql.Tests.Provider.Custom.csproj index da2fecbcc..1e6257e49 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Custom/FreeSql.Tests.Provider.Custom.csproj +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Custom/FreeSql.Tests.Provider.Custom.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 false @@ -12,11 +12,11 @@ - + all diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.GBase/FreeSql.Tests.Provider.GBase.csproj b/FreeSql.Tests/FreeSql.Tests.Provider.GBase/FreeSql.Tests.Provider.GBase.csproj index 2c3189e62..c58a16fec 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.GBase/FreeSql.Tests.Provider.GBase.csproj +++ b/FreeSql.Tests/FreeSql.Tests.Provider.GBase/FreeSql.Tests.Provider.GBase.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 false @@ -14,12 +14,12 @@ - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/FreeSql.Tests.Provider.MySqlConnector.csproj b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/FreeSql.Tests.Provider.MySqlConnector.csproj index 68bbb01af..4ad1c62e5 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/FreeSql.Tests.Provider.MySqlConnector.csproj +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/FreeSql.Tests.Provider.MySqlConnector.csproj @@ -1,7 +1,7 @@  - net6.0;netcoreapp3.1; + net8.0 false @@ -11,7 +11,7 @@ - + all diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/FreeSql.Tests.Provider.Odbc.csproj b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/FreeSql.Tests.Provider.Odbc.csproj index f739f01e6..e4e6bd447 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/FreeSql.Tests.Provider.Odbc.csproj +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/FreeSql.Tests.Provider.Odbc.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 false @@ -12,7 +12,7 @@ - + all diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.OracleOledb/FreeSql.Tests.Provider.OracleOledb.csproj b/FreeSql.Tests/FreeSql.Tests.Provider.OracleOledb/FreeSql.Tests.Provider.OracleOledb.csproj index be27765b9..7b86ddb8a 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.OracleOledb/FreeSql.Tests.Provider.OracleOledb.csproj +++ b/FreeSql.Tests/FreeSql.Tests.Provider.OracleOledb/FreeSql.Tests.Provider.OracleOledb.csproj @@ -1,7 +1,7 @@  - net6.0;netcoreapp3.1; + net8.0 false @@ -11,7 +11,7 @@ - + all diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite.csproj b/FreeSql.Tests/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite.csproj index f4b9be840..28fb4044a 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite.csproj +++ b/FreeSql.Tests/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite/FreeSql.Tests.Provider.PostgreSQL.NetTopologySuite.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 false @@ -11,8 +11,7 @@ - - + all diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/FreeSql.Tests.Provider.Sqlite.Data.csproj b/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/FreeSql.Tests.Provider.Sqlite.Data.csproj index 394d49c00..42bee2caa 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/FreeSql.Tests.Provider.Sqlite.Data.csproj +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Sqlite.Data/FreeSql.Tests.Provider.Sqlite.Data.csproj @@ -1,23 +1,19 @@ - + - net6.0 + net8.0 enable false - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Xugu/FreeSql.Tests.Provider.Xugu.csproj b/FreeSql.Tests/FreeSql.Tests.Provider.Xugu/FreeSql.Tests.Provider.Xugu.csproj index f359aef1e..ceffea47e 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Xugu/FreeSql.Tests.Provider.Xugu.csproj +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Xugu/FreeSql.Tests.Provider.Xugu.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 enable enable @@ -9,16 +9,12 @@ - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj index 79602ff3f..3fa9c3ae7 100644 --- a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj +++ b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 false @@ -14,13 +14,13 @@ - - - - - + + + + + - + all diff --git a/FreeSql/FreeSql.csproj b/FreeSql/FreeSql.csproj index 970affe41..216080303 100644 --- a/FreeSql/FreeSql.csproj +++ b/FreeSql/FreeSql.csproj @@ -18,18 +18,18 @@ key.snk false 3.2.803-preview20231114 + readme.md - + + - - + - - + diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml index f4a66a58c..9f806ff4f 100644 --- a/FreeSql/FreeSql.xml +++ b/FreeSql/FreeSql.xml @@ -1086,82 +1086,6 @@ - - - 动态创建实体类型 - - - - - 配置Class - - 类名 - 类标记的特性[Table(Name = "xxx")] [Index(xxxx)] - - - - - 配置属性 - - 属性名称 - 属性类型 - 属性标记的特性-支持多个 - - - - - 配置属性 - - 属性名称 - 属性类型 - 该属性是否重写父类属性 - 属性标记的特性-支持多个 - - - - - 配置属性 - - 属性名称 - 属性类型 - 该属性是否重写父类属性 - 属性默认值 - 属性标记的特性-支持多个 - - - - - 配置父类 - - 父类类型 - - - - - Override属性 - - - - - - Emit动态创建出Class - Type - - - - - - 首字母小写 - - - - - - - 首字母大写 - - - - 获取实体的主键值,以 "*|_,[,_|*" 分割,当任意一个主键属性无值时,返回 null @@ -3658,177 +3582,6 @@ - - - 测试数据库是否连接正确,本方法执行如下命令: - MySql/SqlServer/PostgreSQL/达梦/人大金仓/神通: SELECT 1 - Oracle: SELECT 1 FROM dual - - 命令超时设置(秒) - - true: 成功, false: 失败 - - - - 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】 - - - - - - - - - - 查询,ExecuteReaderAsync(dr => {}, "select * from user where age > @age", new { age = 25 }) - 提示:parms 参数还可以传 Dictionary<string, object> - - - - - - - - - 查询 - - - - - - - - - 查询,ExecuteArrayAsync("select * from user where age > @age", new { age = 25 }) - 提示:parms 参数还可以传 Dictionary<string, object> - - - - - - - - - 查询 - - - - - - - - - 查询,ExecuteDataSetAsync("select * from user where age > @age; select 2", new { age = 25 }) - 提示:parms 参数还可以传 Dictionary<string, object> - - - - - - - - - 查询 - - - - - - - - - 查询,ExecuteDataTableAsync("select * from user where age > @age", new { age = 25 }) - 提示:parms 参数还可以传 Dictionary<string, object> - - - - - - - - - 在【主库】执行 - - - - - - - - - 在【主库】执行,ExecuteNonQueryAsync("delete from user where age > @age", new { age = 25 }) - 提示:parms 参数还可以传 Dictionary<string, object> - - - - - - - - - 在【主库】执行 - - - - - - - - - 在【主库】执行,ExecuteScalarAsync("select 1 from user where age > @age", new { age = 25 }) - 提示:parms 参数还可以传 Dictionary<string, object> - - - - - - - - - 执行SQL返回对象集合,QueryAsync<User>("select * from user where age > @age", new SqlParameter { ParameterName = "age", Value = 25 }) - - - - - - - - - - - 执行SQL返回对象集合,QueryAsync<User>("select * from user where age > @age", new { age = 25 }) - 提示:parms 参数还可以传 Dictionary<string, object> - - - - - - - - - - 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 }) - - - - - - - - - - - - 执行SQL返回对象集合,Query<User, Address>("select * from user where age > @age; select * from address", new { age = 25 }) - 提示:parms 参数还可以传 Dictionary<string, object> - - - - - - - - 可自定义解析表达式 @@ -4828,12 +4581,6 @@ 超时 - - - 获取资源 - - - 使用完毕后,归还资源 @@ -4909,12 +4656,6 @@ 资源对象 - - - 从对象池获取对象成功的时候触发,通过该方法统计或初始化对象 - - 资源对象 - 归还对象给对象池的时候触发 @@ -5845,28 +5586,6 @@ 请使用 fsql.InsertDict(dict) 方法插入字典数据 - - - 动态构建Class Type - - - - - - 根据字典,创建 table 对应的实体对象 - - - - - - - - 根据实体对象,创建 table 对应的字典 - - - - - C#: that >= between && that <= and diff --git a/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs b/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs index d0c411329..b6293849e 100644 --- a/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs +++ b/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs @@ -322,7 +322,7 @@ from system.columns a //先判断表中有没此字段的索引 if (indexCollect.Any(c => RemoveSpaceComparison(c.expr, - string.Join(',', uk.Columns.Select(i => i.Column.CsName))))) + string.Join(",", uk.Columns.Select(i => i.Column.CsName))))) { //有这个字段的索引,但是名称不一样 修改名 , ClickHouse不支持修改列 //if (!indexCollect.Where(c => c.name == uk.Name).Any()) @@ -507,22 +507,17 @@ object LocalExecuteScalar(string db, string sql) } } - string CkNullablePrimaryAdapter(string dbType, bool isPrimary) - { - return isPrimary - ? dbType.Replace("Nullable(", "").Replace(")", "") - : dbType.Replace(" NOT NULL", ""); - } string CkNullableAdapter(string dbType, bool isPrimary) { - return isPrimary switch + if (isPrimary) { - true when dbType.Contains("Nullable") => dbType.Replace("Nullable(", "") - .Replace(")", "") - .Replace(" NOT NULL", ""), - true => dbType, - _ => dbType.Replace(" NOT NULL", "") - }; + if (dbType.Contains("Nullable")) + return dbType.Replace("Nullable(", "") + .Replace(")", "") + .Replace(" NOT NULL", ""); + return dbType; + } + return dbType.Replace(" NOT NULL", ""); } diff --git a/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseInsert.cs b/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseInsert.cs index dd4855dec..0645397ae 100644 --- a/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseInsert.cs +++ b/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseInsert.cs @@ -60,12 +60,14 @@ protected override int RawExecuteAffrows() var data = ToDataTable(); using (var conn = _orm.Ado.MasterPool.Get()) { - using var bulkCopyInterface = new ClickHouseBulkCopy(conn.Value as ClickHouseConnection) + using (var bulkCopyInterface = new ClickHouseBulkCopy(conn.Value as ClickHouseConnection) { DestinationTableName = data.TableName, BatchSize = _source.Count - }; - bulkCopyInterface.WriteToServerAsync(data, default).Wait(); + }) + { + bulkCopyInterface.WriteToServerAsync(data, default).Wait(); + } } return affrows; } @@ -95,7 +97,8 @@ private IDictionary GetValue(T u, System.Reflection.PropertyI { v = item.GetValue(u); } - dic.TryAdd(item.Name, v); + if (dic.ContainsKey(item.Name) == false) + dic.Add(item.Name, v); } return dic; } @@ -170,12 +173,14 @@ async protected override Task RawExecuteAffrowsAsync(CancellationToken canc var data = ToDataTable(); using (var conn = await _orm.Ado.MasterPool.GetAsync()) { - using var bulkCopyInterface = new ClickHouseBulkCopy(conn.Value as ClickHouseConnection) + using (var bulkCopyInterface = new ClickHouseBulkCopy(conn.Value as ClickHouseConnection) { DestinationTableName = data.TableName, BatchSize = _source.Count - }; - await bulkCopyInterface.WriteToServerAsync(data, default); + }) + { + await bulkCopyInterface.WriteToServerAsync(data, default); + } } return affrows; } diff --git a/Providers/FreeSql.Provider.ClickHouse/FreeSql.Provider.ClickHouse.csproj b/Providers/FreeSql.Provider.ClickHouse/FreeSql.Provider.ClickHouse.csproj index a0bcd2670..0f19ad7e8 100644 --- a/Providers/FreeSql.Provider.ClickHouse/FreeSql.Provider.ClickHouse.csproj +++ b/Providers/FreeSql.Provider.ClickHouse/FreeSql.Provider.ClickHouse.csproj @@ -1,7 +1,6 @@ - netstandard2.1 true FreeSql;ncc;YeXiangQin;ChenBo @@ -20,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Providers/FreeSql.Provider.Custom/FreeSql.Provider.Custom.csproj b/Providers/FreeSql.Provider.Custom/FreeSql.Provider.Custom.csproj index 5e2cacdcd..81e4572b8 100644 --- a/Providers/FreeSql.Provider.Custom/FreeSql.Provider.Custom.csproj +++ b/Providers/FreeSql.Provider.Custom/FreeSql.Provider.Custom.csproj @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs b/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs index 311cbfa16..643ce5680 100644 --- a/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs +++ b/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs @@ -111,7 +111,7 @@ protected override long RawExecuteIdentity() catch (Exception ex) { exception = ex; - throw ex; + throw; } finally { @@ -135,7 +135,7 @@ protected override long RawExecuteIdentity() catch (Exception ex) { exception = ex; - throw ex; + throw; } finally { @@ -181,7 +181,7 @@ async protected override Task RawExecuteIdentityAsync(CancellationToken ca catch (Exception ex) { exception = ex; - throw ex; + throw; } finally { @@ -205,7 +205,7 @@ async protected override Task RawExecuteIdentityAsync(CancellationToken ca catch (Exception ex) { exception = ex; - throw ex; + throw; } finally { diff --git a/Providers/FreeSql.Provider.Dameng/DamengAdo/DamengConnectionPool.cs b/Providers/FreeSql.Provider.Dameng/DamengAdo/DamengConnectionPool.cs index c9aa3198f..11a515317 100644 --- a/Providers/FreeSql.Provider.Dameng/DamengAdo/DamengConnectionPool.cs +++ b/Providers/FreeSql.Provider.Dameng/DamengAdo/DamengConnectionPool.cs @@ -145,7 +145,7 @@ public void OnGet(Object obj) { if (_pool.SetUnavailable(ex, obj.LastGetTimeCopy) == true) throw new Exception($"【{this.Name}】Block access and wait for recovery: {ex.Message}"); - throw ex; + throw; } } } @@ -175,7 +175,7 @@ async public Task OnGetAsync(Object obj) { if (_pool.SetUnavailable(ex, obj.LastGetTimeCopy) == true) throw new Exception($"【{this.Name}】Block access and wait for recovery: {ex.Message}"); - throw ex; + throw; } } } diff --git a/Providers/FreeSql.Provider.Dameng/FreeSql.Provider.Dameng.csproj b/Providers/FreeSql.Provider.Dameng/FreeSql.Provider.Dameng.csproj index 554cbacc7..551a4a02c 100644 --- a/Providers/FreeSql.Provider.Dameng/FreeSql.Provider.Dameng.csproj +++ b/Providers/FreeSql.Provider.Dameng/FreeSql.Provider.Dameng.csproj @@ -1,7 +1,7 @@ - net60;netcoreapp3.1;netstandard2.0;net45;net40 + net6.0;netcoreapp3.1;netstandard2.0;net45;net40 true FreeSql;ncc;YeXiangQin FreeSql 数据库实现,基于 达梦数据库 Ado.net (DmProvider) @@ -16,11 +16,16 @@ true true 3.2.803-preview20231114 + readme.md + - + + + + @@ -46,7 +51,7 @@ - + ns20;netstandard20 diff --git a/Providers/FreeSql.Provider.Dameng/lib/DmProvider/net60/DmProvider.dll b/Providers/FreeSql.Provider.Dameng/lib/DmProvider/net6.0/DmProvider.dll similarity index 100% rename from Providers/FreeSql.Provider.Dameng/lib/DmProvider/net60/DmProvider.dll rename to Providers/FreeSql.Provider.Dameng/lib/DmProvider/net6.0/DmProvider.dll diff --git a/Providers/FreeSql.Provider.Dameng/lib/DmProvider/net60/en/DmProvider.resources.dll b/Providers/FreeSql.Provider.Dameng/lib/DmProvider/net6.0/en/DmProvider.resources.dll similarity index 100% rename from Providers/FreeSql.Provider.Dameng/lib/DmProvider/net60/en/DmProvider.resources.dll rename to Providers/FreeSql.Provider.Dameng/lib/DmProvider/net6.0/en/DmProvider.resources.dll diff --git a/Providers/FreeSql.Provider.Dameng/lib/DmProvider/net60/zh-CN/DmProvider.resources.dll b/Providers/FreeSql.Provider.Dameng/lib/DmProvider/net6.0/zh-CN/DmProvider.resources.dll similarity index 100% rename from Providers/FreeSql.Provider.Dameng/lib/DmProvider/net60/zh-CN/DmProvider.resources.dll rename to Providers/FreeSql.Provider.Dameng/lib/DmProvider/net6.0/zh-CN/DmProvider.resources.dll diff --git a/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj b/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj index dfe7676c6..bbf5d2e18 100644 --- a/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj +++ b/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Providers/FreeSql.Provider.GBase/FreeSql.Provider.GBase.csproj b/Providers/FreeSql.Provider.GBase/FreeSql.Provider.GBase.csproj index 36bfd86ac..f6ae3d368 100644 --- a/Providers/FreeSql.Provider.GBase/FreeSql.Provider.GBase.csproj +++ b/Providers/FreeSql.Provider.GBase/FreeSql.Provider.GBase.csproj @@ -19,10 +19,15 @@ key.snk false 3.2.803-preview20231114 + readme.md + + + + Always diff --git a/Providers/FreeSql.Provider.KingbaseES/FreeSql.Provider.KingbaseES.csproj b/Providers/FreeSql.Provider.KingbaseES/FreeSql.Provider.KingbaseES.csproj index cb6708a51..3177d2bf7 100644 --- a/Providers/FreeSql.Provider.KingbaseES/FreeSql.Provider.KingbaseES.csproj +++ b/Providers/FreeSql.Provider.KingbaseES/FreeSql.Provider.KingbaseES.csproj @@ -16,10 +16,15 @@ true true 3.2.803-preview20231114 + readme.md + + + + diff --git a/Providers/FreeSql.Provider.MsAccess/FreeSql.Provider.MsAccess.csproj b/Providers/FreeSql.Provider.MsAccess/FreeSql.Provider.MsAccess.csproj index ad1330570..e1d69b57f 100644 --- a/Providers/FreeSql.Provider.MsAccess/FreeSql.Provider.MsAccess.csproj +++ b/Providers/FreeSql.Provider.MsAccess/FreeSql.Provider.MsAccess.csproj @@ -19,12 +19,14 @@ key.snk false 3.2.803-preview20231114 + readme.md + - + diff --git a/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj b/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj index bb02fc5d7..8f5e9b13f 100644 --- a/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj +++ b/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Providers/FreeSql.Provider.MySqlConnector/FreeSql.Provider.MySqlConnector.csproj b/Providers/FreeSql.Provider.MySqlConnector/FreeSql.Provider.MySqlConnector.csproj index 94df2a69e..980418070 100644 --- a/Providers/FreeSql.Provider.MySqlConnector/FreeSql.Provider.MySqlConnector.csproj +++ b/Providers/FreeSql.Provider.MySqlConnector/FreeSql.Provider.MySqlConnector.csproj @@ -1,7 +1,7 @@ - netstandard2.0;net60;net50;net45;netstandard2.1;netcoreapp2.1;netcoreapp3.1; + net8.0;net6.0;netcoreapp3.1;netstandard2.1;netstandard2.0;net45 true FreeSql;ncc;YeXiangQin FreeSql 数据库实现,基于 MySql 5.6,Ado.Net 驱动是 MySqlConnector @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Providers/FreeSql.Provider.Odbc/FreeSql.Provider.Odbc.csproj b/Providers/FreeSql.Provider.Odbc/FreeSql.Provider.Odbc.csproj index f4847e371..9a728618f 100644 --- a/Providers/FreeSql.Provider.Odbc/FreeSql.Provider.Odbc.csproj +++ b/Providers/FreeSql.Provider.Odbc/FreeSql.Provider.Odbc.csproj @@ -19,14 +19,16 @@ key.snk false 3.2.803-preview20231114 + readme.md + - + diff --git a/Providers/FreeSql.Provider.Oracle/FreeSql.Provider.Oracle.csproj b/Providers/FreeSql.Provider.Oracle/FreeSql.Provider.Oracle.csproj index 8d6f2dbd1..7e4703ad0 100644 --- a/Providers/FreeSql.Provider.Oracle/FreeSql.Provider.Oracle.csproj +++ b/Providers/FreeSql.Provider.Oracle/FreeSql.Provider.Oracle.csproj @@ -1,7 +1,7 @@ - netstandard2.0;netstandard2.1;net60;net50;net45;net40 + net6.0;net5.0;netstandard2.1;netstandard2.0;net45;net40 true FreeSql;ncc;YeXiangQin FreeSql 数据库实现,基于 Oracle 11 @@ -19,21 +19,23 @@ key.snk false 3.2.803-preview20231114 + readme.md + - + - - + + - + diff --git a/Providers/FreeSql.Provider.OracleOledb/FreeSql.Provider.OracleOledb.csproj b/Providers/FreeSql.Provider.OracleOledb/FreeSql.Provider.OracleOledb.csproj index 08f9fc19e..96ef68e88 100644 --- a/Providers/FreeSql.Provider.OracleOledb/FreeSql.Provider.OracleOledb.csproj +++ b/Providers/FreeSql.Provider.OracleOledb/FreeSql.Provider.OracleOledb.csproj @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj b/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj index 652e89740..cc23a2df1 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj +++ b/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Providers/FreeSql.Provider.QuestDb/FreeSql.Provider.QuestDb.csproj b/Providers/FreeSql.Provider.QuestDb/FreeSql.Provider.QuestDb.csproj index 0a0214d92..ee1e37043 100644 --- a/Providers/FreeSql.Provider.QuestDb/FreeSql.Provider.QuestDb.csproj +++ b/Providers/FreeSql.Provider.QuestDb/FreeSql.Provider.QuestDb.csproj @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + @@ -29,26 +31,11 @@ - - - - - - - - - + - - net45 - - - nts - - diff --git a/Providers/FreeSql.Provider.QuestDb/QuestDbUtils.cs b/Providers/FreeSql.Provider.QuestDb/QuestDbUtils.cs index 4d71da002..60ae7e4c9 100644 --- a/Providers/FreeSql.Provider.QuestDb/QuestDbUtils.cs +++ b/Providers/FreeSql.Provider.QuestDb/QuestDbUtils.cs @@ -31,7 +31,7 @@ class QuestDbUtils : CommonUtils string now_to_timezone; public QuestDbUtils(IFreeSql orm) : base(orm) { - var timeOffset = (int)TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).TotalMinutes; + var timeOffset = (int)DateTime.Now.Subtract(DateTime.UtcNow).TotalMinutes; if (timeOffset == 0) now_to_timezone = "systimestamp()"; else { diff --git a/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj b/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj index 7aca4aebc..845eb2290 100644 --- a/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj +++ b/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj @@ -16,10 +16,15 @@ true true 3.2.803-preview20231114 + readme.md + + + + diff --git a/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj b/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj index c79399aab..aa95745bb 100644 --- a/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj +++ b/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj @@ -1,7 +1,7 @@ - netstandard2.0;net60;net50;net451;net45;net40 + net8.0;net7.0;net6.0;netstandard2.0;net451;net45;net40 true FreeSql;ncc;YeXiangQin FreeSql 数据库实现,基于 SqlServer 2005+,并根据版本适配分页方法:row_number 或 offset fetch next @@ -19,16 +19,18 @@ false key.snk 3.2.803-preview20231114 + readme.md + - + @@ -36,13 +38,13 @@ - + microsoft net40 - + net60;microsoft diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs index bc0a04ac9..27bd0bb63 100644 --- a/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs +++ b/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs @@ -416,7 +416,7 @@ async public static Task ExecuteSqlBulkCopyAsync(this IInsert that, SqlBul } } #endif - #endregion +#endregion } [Flags] diff --git a/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj b/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj index f8d68a665..463ede4ce 100644 --- a/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj +++ b/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj @@ -1,7 +1,7 @@ - netstandard2.0;net60;net50;net451;net45;net40 + net8.0;net7.0;net6.0;netstandard2.0;net451;net45;net40 true FreeSql;ncc;YeXiangQin FreeSql 数据库实现,基于 System.Data.SqlClient + SqlServer 2005+,并根据版本适配分页方法:row_number 或 offset fetch next @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + @@ -40,7 +42,7 @@ net40 - + net60 diff --git a/Providers/FreeSql.Provider.Sqlite/FreeSql.Provider.Sqlite.csproj b/Providers/FreeSql.Provider.Sqlite/FreeSql.Provider.Sqlite.csproj index b07fc2f3a..f811e4db4 100644 --- a/Providers/FreeSql.Provider.Sqlite/FreeSql.Provider.Sqlite.csproj +++ b/Providers/FreeSql.Provider.Sqlite/FreeSql.Provider.Sqlite.csproj @@ -19,9 +19,11 @@ key.snk false 3.2.803-preview20231114 + readme.md + diff --git a/Providers/FreeSql.Provider.SqliteCore/FreeSql.Provider.SqliteCore.csproj b/Providers/FreeSql.Provider.SqliteCore/FreeSql.Provider.SqliteCore.csproj index fde60b9c5..bb3779bf7 100644 --- a/Providers/FreeSql.Provider.SqliteCore/FreeSql.Provider.SqliteCore.csproj +++ b/Providers/FreeSql.Provider.SqliteCore/FreeSql.Provider.SqliteCore.csproj @@ -1,7 +1,7 @@ - netstandard2.0;net6.0 + net8.0;net6.0;netstandard2.0 true FreeSql;ncc;YeXiangQin FreeSql 数据库实现,基于 Microsoft.Data.Sqlite.Core、Sqlite 3.0,支持 .netstandard2.0、.net6.0 @@ -19,19 +19,25 @@ key.snk false 3.2.803-preview20231114 - + readme.md + - - - + + + + - - - + + + + + + + diff --git a/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj b/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj index e6ef6dafc..5da2bc341 100644 --- a/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj +++ b/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj @@ -1,7 +1,7 @@ - net70;net60;netstandard2.0 + netstandard2.0 true FreeSql;ncc;YeXiangQin FreeSql 数据库实现,基于 虚谷数据库 Ado.Net (XuguClient.dll) @@ -16,14 +16,19 @@ true true 3.2.803-preview20231114 + readme.md + + + + + - diff --git a/Providers/FreeSql.Provider.Xugu/XuguDbFirst.cs b/Providers/FreeSql.Provider.Xugu/XuguDbFirst.cs index 19df6f892..1cce68065 100644 --- a/Providers/FreeSql.Provider.Xugu/XuguDbFirst.cs +++ b/Providers/FreeSql.Provider.Xugu/XuguDbFirst.cs @@ -119,18 +119,11 @@ XGDbType GetXGDbType(DbColumnInfo column) { (int)XGDbType.Numeric, ("(decimal?)", "decimal.Parse({0})", "{0}.ToString()", "decimal?", typeof(decimal), typeof(decimal?), "{0}.Value", "GetDecimal") }, { (int)XGDbType.Real, ("(float?)", "float.Parse({0})", "{0}.ToString()", "float?", typeof(float), typeof(float?), "{0}.Value", "GetFloat") }, { (int)XGDbType.Double, ("(double?)", "double.Parse({0})", "{0}.ToString()", "double?", typeof(double), typeof(double?), "{0}.Value", "GetDouble") }, - { (int)XGDbType.Char, ("", "{0}.Replace(StringifySplit, \"|\")", "{0}.Replace(\"|\", StringifySplit)", "string", typeof(string), typeof(string), "{0}", "GetString") }, { (int)XGDbType.VarChar, ("", "{0}.Replace(StringifySplit, \"|\")", "{0}.Replace(\"|\", StringifySplit)", "string", typeof(string), typeof(string), "{0}", "GetString") }, { (int)XGDbType.LongVarChar, ("", "{0}.Replace(StringifySplit, \"|\")", "{0}.Replace(\"|\", StringifySplit)", "string", typeof(string), typeof(string), "{0}", "GetString") }, - - { (int)XGDbType.DateTime, ("(DateTime?)", "new DateTime({0})", "{0}.ToString()", "DateTime?", typeof(DateTime), typeof(DateTime?), "{0}.Value", "GetValue") }, - - { (int)XGDbType.Bool, ("(bool?)", "{0} == \"1\"", "{0} == true ? \"1\" : \"0\"", "bool?", typeof(bool), typeof(bool?), "{0}.Value", "GetBoolean") }, - - }; public string GetCsConvert(DbColumnInfo column) => _dicDbToCs.TryGetValue(column.DbType, out var trydc) ? (column.IsNullable ? trydc.csConvert : trydc.csConvert.Replace("?", "")) : null;