Skip to content

更新日志

2881099 edited this page Jul 31, 2026 · 813 revisions

大约每三个月一次版本号,暂时以修复 bug 为主

v3.5.311

  • 修复 MySql WithIndex 多表情况的问题;#2237
  • 修复 pgsql update .Set(a => a.array ==array ) 非参数化解析sql错误问题;#2254
  • 修复 Sqlite 驱动在 DbFirst 时无法读取视图(View)的 Bug;#2258
  • 修复 人大金仓 AsTreeCte().ToDelete() 缺少类型转换问题;#2250
  • 修复 ArrayLength 表达式树解析问题;#2267
  • 修复 InsertDict 批量插入Guid?问题;#2260
  • 修复 FromQuery + RereadSql 问题;#2261
  • 修复 .Page(1, int.MaxValue) 可能报错的问题;#2265

v3.5.310

  • 添加 DefaultRepository 和 UnitOfWorkManager 的泛型实现;#2231
  • 添加 PgCopy 超时参数;#2238
  • 增强 ToList new T 也支持 dto 自动映射的细节规则(若未指定过);#2241
  • 修复 UnitOfWork.Dispose 后未禁用Enable导致孤儿事务和连接泄漏;#2227
  • 修复 PG时间类型为NULL时也需要转换,否则插入或更新生成SQL执行会报错;#2198

v3.5.309

  • 修复 浮点数解析的西班牙地区报错;#2184
  • 增加 string compare 表达式函数解决;#2087
  • 优化 WithTempQuery 重复字段处理逻辑;

v3.5.308

  • 增加 FreeSql.Generator 多语言支持,添加中文和英文的提示信息;#2223
  • 修复 FreeSql.DbContext .net5-.net9 发布问题;#2221
  • 修复 FreeSql.Extensions.LazyLoading 单文件发布问题,删除 CS-Script.Core 改用官方的库 Microsoft.CodeAnalysis.CSharp;#2217
  • 优化 实体类映射忽略静态属性;#2218

v3.5.307

  • feat: add support for including ignored columns in MapEntityValue method.
  • fix: Override Firebird's bitwise operators.

v3.5.306

  • 修复 ClickHouse 读取到错误列导致插入失败问题;#2194
  • 补充 SqlExt.DateDiff 对其他数据库的支持;

v3.5.305

  • 增加 ISelect.WithoutJoin 多表查询时排除某个表;
  • 增加 CreateUnitOfWork 从外部事务创建;
  • 增加 TDengine 对Decimal类型支持;
  • 修复 UnitlOfWorkManager 绑定 DbContext 事务问题;
  • 修复 Select0Provider.Finalize 可能存在的问题;#2183
  • 修复 MySql InsertInto Enum MapType(int) 赋值未能解析为 int ;
  • 修复 Clickhouse 参数化处理 Enum 的问题;
  • 补充 ObjectPool Async CancellationToken 参数;#2177

v3.5.304

  • 修复 Contains 解决可能在 net10 出现的问题;#2144
  • 增加 Clickhouse DateOnly 支持;
  • 增加 GBase ExecuteInserted/ExecuteUpdated/ExecuteDeleted 方法;
  • 增加 GBase CodeFirst 可新增列;
  • 修复 南大通用使用 DateTime.Date 操作无法比较的问题;
  • 修复 南大通用对 text 写入报错的问题;
  • 修复 pgsql 驱动使用 UseMergeInto 语法在 InsertOrUpdate PgCopy 生成了错误的 SQL;
  • 修复 opengauss 使用 pg 驱动时 merge 语法错误和增加二进制字段值显式类型转换;
  • 修复 DataType 在 Custom 项目下的设置问题;#2153

v3.5.302

  • 升级到 .NET 10.0;
  • 添加 IUpdate.SetByPropertyName 动态指定属性更新;
  • 修复 MySql Enum MapType(int) 表达式值解析 bug;
  • 修复 Firebird 批量插入异常问题(BLOB SUB_TYPE BINARY 需要参数化命令);#2139
  • 修复 KingbaseES bool 类型解析为 true/false;
  • 优化 KingbaseES V9 支持和读取链接字符串中的 SearchPath 来确定架构模式;
  • 优化 强制索引(WithIndex)同时支持 MySql/Oracle/SqlServer/Sqlite;#2130
  • 优化 PG临时主键插入或更新时自增主键不插入;#2133
  • 修复 ClickHouseBulkCopy 没传 ColumnNames 与未调用 InitAsync 可能导致 Column names not initialized. Call InitAsync once to load column data;
  • 补充 IUnitOfWorkManager;#2127
  • 升级 DuckDB to v1.4.1;#2128
  • 升级 kdbndp.dll to V9.3.7.1030

v3.5.215

  • 修复 Clickhouse 批量新增因未指定 Columns 导致报错;
  • 修复 ClickHouse .LimitBy;#2114
  • 修复 AOP 优先级最高 Aop.ConfigEntity 无法获取 ModifyIndexResult;
  • 修复 ZeroDbContext WhereDyanmicFilter DataRange bug;
  • 修复 ZeroDbContext 多表 Schema 问题;
  • 修复 OracleDBFirst 生成实体 Schema 清空导致的 -match 无法匹配表;
  • 修复 子查询In ToList.Contains 开启参数化后可能丢失参数的 bug;UseGenerateCommandParameterWithLambda
  • 优化 WithLock(NoLock) 同时兼容 SqlServer、达梦;#2058
  • 优化 SqliteDbFirst 输入参数处理;
  • 优化 QuestDb IHttpClientFactory、IServiceCollection 相关逻辑;
  • 优化 QuestDb Insert Update 相关逻辑;
  • 调整 ClickHouse 驱动 ClickHouse.Client 改成 ClickHouse.Driver;

v3.5.213

  • 调整 ManyToMany 不一定非要双边设置;
  • 修复 pgsql WithTempQuery + ToList 对于 bool 类型处理导致的性能问题;#2093
  • 修复 非公开无参的实体无法获取默认值问题;#2085
  • 修复 ZeroDbEntity WhereDynamic 多表匹配问题;
  • 修复 Aop.AuditValue 值变化状态的判断问题;#2101
  • 修复 SqlServer DbFirst 大小写判断问题;
  • 修复 MySql 生成 DDL 会报错问题;
  • 补充 MySql DbFirst Index Name 值;
  • 补充 pgsql FreeSql.Generator 默认值 uuid_generate_v4() 生成;#2088

v3.5.212

  • 修复 Oracle InsertOrUpdate Bug;#2047

v3.5.211

  • 修复 ToChunkAsyncEnumerable 少读一条数据的 bug;#1982 #2056 #2016 #2015
  • 修复 System.MemoryExtensions.Contains 解析问题;#1993
  • 修复 Group 查询不支持 aot 问题;#2077
  • 修复 WithTempQuery + AsTreeCte 生成SQL错误;#2080
  • 修复 Oracle DbFirst.GetTableByName() 没有返回字段信息;#2074
  • 修复 GBase DbFirst 字典配置问题;#2078
  • 修复 GBase 时间类型精度问题;#2079
  • 修复 Sqlite CodeFirst 特殊表名问题;
  • 完善 ClickHouse/QuestDB/TDengine 支持 enum 映射;
  • 增加 SqlExt.Ntile ntile(5) over (order by ...);

v3.5.210

  • 增强 全局过滤器支持查询、更新、删除指定生效;#2061
  • 修复 SqliteCore AOT Expression 隐式将 decimal 转成 int 问题;#2065
  • 修复 WithMemory 首行为 NULL 值的情况;#2047
  • 修复 ExecuteSqlBulkCopy() 对于表名有空格的情况处理异常;#2055
  • 修复 pgsql + JsonMap 无法解析 poco 表达式树的问题;#2060
  • 优化 pgsql + JsonMap 自动映射为 jsonb;#2060

v3.5.209

  • 修复 AsTreeCte + InsertInto 语法错误问题;#2045

v3.5.208

  • 修复 MySql Enum MapType(int) .Contains 解析问题;
  • 修复 MySql JsonMap Enum 统一解析为 int;#2040

v3.5.207

  • 修复 Lambda .Contains 通配符解析为非 Like 问题;

v3.5.206

  • 增加 ISelect.ToChunkAsyncEnumerable 异步流功能;
  • 增加 FreeSql.Extensions.EFModel 从 efcore modelBuilder FluentApi 同步到 IFreeSql;
  • 增加 Firebird ForUpdate skiplocked 查询参数;
  • 修复 Firebird Inserted/Deleted 与 Repository 级联冲突 bug;#2023
  • 修复 Duckdb CodeFirst Create Index异常;#2027
  • 修复 ToList 子查询 bug;
  • 修复 InsertOrUpdate 更新时触发两次 AuditValue;#2020
  • 调整 Repository 状态管理支持 Ignore 属性(非副本);
  • 完善 低代码扩展 FreeSql.Extensions.ZeroEntity;

v3.5.203

  • 增加 ISelect.Clone() 克隆查询对象;
  • 增加 ZeroDbContext.LoadSchemaFromDatabase 方法从数据库中加载描述对象;
  • 修复 MySqlCodeFirst Primary 迁移逻辑;#2005
  • 修复 .In() 非表达式解析场景的 null 处理;
  • 忧化 Oracle DbFirst 表特别多的时候生成速度;
  • 忧化 GroupBySelf + ToList 不自动映射;
  • 调整 SqlExt 聚合函数 Count 统一返回 int;

v3.5.202

  • 补充 Utils.IsStrict = false 可配置支持中间表有 Id 主键;(解决v3.5.107版本调整影响)

v3.5.201

  • 修复 .Contains in 表达式函数解析在ar-AE区域问题;#2002
  • 忧化 IDbFirst Columns 序列与数据库相同;
  • 补充 UnitOfWorkManager 支持 DbContext 托管工作单元;

v3.5.109

  • 忧化 GroupBySelf.Where 自动转 having;
  • 忧化 FreeSql.Provider.PostgreSQL IPostgreSQLProviderOptions 多态参数接口,设置 InsertOrUpdate 采用 MERGE INTO;

在 FreeSqlBuilder().Build() 之后设置如下:

(fsql as IPostgreSQLProviderOptions).UseMergeInto = true;

v3.5.108

  • 修复 DbSet/Repository CompareState 报错的问题;#1994
  • 增加 ISelect.GroupBySelf 返回 ISelect;

v3.5.107

  • 修复 ISelectGroupingAggregate 自定义解析方法报错的问题;
  • 修复 Custom/Odbc char CodeFirst 映射问题;
  • 修复 AggregateRoot CompareEntityValue 错误;
  • 优化 AggregateRoot MapEntityValue 支持将实体映射到字典;
  • 优化 AggregateRoot 不对比 CanUpdate = false 的字段 ;
  • 优化 多对多中间表主键配置错误的友好提醒;

v3.5.106

  • 增加 sqlite 批量插入方式 ExecuteSqliteBulkInsert;#1975
  • 修复 Oracle CodeFirst nclob cast 转换问题;
  • 修复 JsonMap Deserialize surpport JsonSerializerSettings;
  • 修复 Kingbase 判断 v8r3 版本号问题;#1976
  • 修复 TDengine DateTime 默认值读取异常;#1980 #1977

v3.5.102-3.5.105

  • 增加 ISelect.Join 与 InnerJoin 方式行为一致;
  • 增加 ToChunkAsync 异步 Api;#1952
  • 增加 SqlExt.AggregateCount/AggregateSum 等方法,区分 SqlExt.Count/SqlExt.Sum 开窗方法;
  • 修复 ExpressionTree 无法将 double -> 转成 int 的问题;
  • 修复 PgCopy DateTime 映射 date 失败的情况;
  • 修复 Npgsql postgis 条件编译问题;#1940
  • 修复 MySql.Data MySqlDateTime 读取为 null 的情况;#1960 #1948
  • 修复 Oracle CodeFirst clob/blob cast 转换问题;
  • 修复 KingBase .net8.0 等目标框架 dll 引用问题;
  • 修复 Firebird 表注释迁移问题(列注释正常);#1913
  • 修复 Firebird 批量插入类型转换问题;#1923
  • 修复 GBase IsNull 日期解析问题;#1953
  • 修复 DmPrivider 连接达梦主从集群会出错问题;#1955
  • 修复 达梦数据库上时间相减永远输出为0的问题;#1973
  • 修复 CodeFirst 修改表名时重建索引的问题;
  • 修复 GroupBy + WithTempQuery + 子查询参数化问题;#1965
  • 修复 DateOnly/TimeOnly AOT 裁剪默认报错的问题;
  • 修复 DateTime 相减时,出现 IIF 无法转换表达式的错误
  • 修复 AdoConnectionPool 默认不生效的问题;
  • 修复 CreateInstance 发生歧义的问题;#1962
  • 修复 In + MapType 无效的问题;
  • 修复 In + 子查询 别名问题;#1967
  • 优化 ToList 针对 bool 自动转成 CASE When;
  • 优化 SqlServer WithIndex 使用习惯;
  • 忧化 DbFirst Oracle 自动批量插入问题;(2020年方法忘记生效)
  • 忧化 DateTime.Subtract(date).TotalDays 表达式解析对应 datediff(day, date1, date2);
  • 优化 表达式解析 dArray.Select(p => p.Key).Contains(a.Id);
  • 优化 非 join 的多表查询的 SQL 格式;

v3.5.102

  • 更新 到 .NET9.0;
  • 增加 DuckDB 数据库支持; https://freesql.net/guide/freesql-provider-duckdb.html
  • 增加 TDengine 数据库支持(感谢Daily贡献); https://freesql.net/guide/freesql-provider-tdengine.html
  • 增加 KingBaseES 支持数组等类型(参考 PostgreSQL);
  • 增加 Pgsql/MySql DateOnly/TimeOnly 映射;#1868 #1763 #939 #991
  • 增加 OracleUs7ascii 写入处理特性;
  • 增加 JsonMap Poco Lambda 表达式成员解析;
  • 增加 FromQuery 参数由5个加到16个;
  • 优化 FromQuery/UnionAll 在子查中继续嵌套;
  • 优化 ISelect.WithMemory 对匿名类型的支持;
  • 优化 Lambda Dto 指定 .Any() 自动转成 Case when;
  • 优化 ExpressionCall + DynamicInvoke 的解析;
  • 优化 LIKE 表达式解析 #1870;
  • 优化 Lambda Min/Max/First 针对 DateTime 类型不自动处理 IsNull 逻辑,因为各数据库没有统一默认值;
  • 优化 DateTime.Subtract(date).TotalSecods 等 lambda 表达式解析,对应 datediff;
  • 优化 DbSet/Repository 删除多主键分批300,防止 SQL AND OR 过长问题;
  • 优化 DM/KDB/ST 默认使用 ado.net 连接池;
  • 扩展 TypeHandler override FluentApi 设置;
  • 扩展 SqlExt.DateDiff 时间差值计算;
  • 扩展 a.Id.In(..) 自定义函数解析,或 new[]{ 1,2,3 }.Contains(a.Id) 相同;
  • 修复 Repository + AuditValue + Attach 问题;#1931 #1746
  • 修复 GBase serial8/bigserial 自增回填的问题;#1919
  • 修复 Xugu DataType 对应问题;#1934 #1933
  • 修复 Firebird 批量插入 varchar 追加空格的问题;#1923
  • 修复 Guid.NewGuid().ToString().Replace("-", "") 3.2.810 之后版本的解析问题;
  • 修复 UnionAll + OrderBy 未处理嵌套的问题;
  • 移除 TimeSpan 过度 Lambda 解析;
  • 移除 OdbcDameng/OdbcKingbaseES;
  • 移除 Resources 转换成 static class 静态类;#1917
  • 移除 fsql.GetGuidRepository 改用 fsql.GetRepository();
  • 修复 DateOnly/TimeOnly 映射问题;#1868 #1855 #1763 #939 #991
  • v3.2.833

    • 添加 Aop.ConfigEntity 动态设置表名功能;#364 #1835 #1729 #1542 #1248 #1247 #407 #387
    • 增加 UpdateDict/DeleteDict 方法 Where(sql);#1840
    • 优化 GroupBy 聚合函数 Count(bool) 解析成 sum(case when);#1841

    v3.2.832

    • 修复 */表达式解析问题;#1836
    • 修复 Extesions.Linq COUNT Distinct 生成sql错误;#1838
    • 优化 Ado读写分离存储过程默认使用从库;#1833
    • 增加 ZeroEntity 自定义异常及相关;

    v3.2.830

    • 增加 ClickHouse 表分区支持;(感谢d4ilys贡献)
    • 修复 .Contains('b%') 部分数据库函数参数位置错误;#1826
    • 修复 ClickHouse 批量更新 DateTime 问题;
    • 修复 Cilckhouse CodeFirst主键问题;
    • 调整 命名空间 FreeSql.Provider.ClickHouse.Attributes -> FreeSql.DataAnnotations;#1815

    v3.2.825

    • 修复 开发环境分层编译,可能导致XML注释文件被锁报错的问题;
    • 修复 聚合根仓储级联插入 OnToMany 雪花主键只插入一条记录;

    v3.2.822

    • 增加 vb.net Lambda 解析 AddChecked/SubtractChecked/MultiplyChecked;
    • 修复 时枚举转 int 再转字符串报错;#1781

    v3.2.821

    • 修复 clickhouse.client 7.2.2 批量插入失败问题;#1776
    • 修复 IInsertOrUpdate.ExecuteMySqlBulkCopyAsync 异步方法会出现空引用的异常;#1762
    • 修复 DynamicCompileBuilder Extend 方法设置基类后失效问题;#1774

    v3.2.820

    • 增加 DynamicEntity TypeBuilder 只读属性;
    • 修复 .NET9 TimeSpan.FromSeconds Reflect bug;#1748 #99588
    • 修复 IBaseRepository.IncludeByPropertyName可能报错的问题;#1740
    • 修复 弱类型 IBaseRepository 级联操作问题;#1740
    • 修复 Where(HzyTuple) 参数为 null 时的错误;#1744
    • 修复 IUpdate.SetSource SqlServer 批量更新 Cast 问题;#1755
    • 修复 SqlServer 导航属性 .Any 布尔子条件解析问题;
    • 优化 DbSet/Repository Attach 与 CanUpdate AuditValue 状态不同步问题;#1746
    • 优化 QuestDb BulkCopy 重命名为:ExecuteQuestDbBulkCopy;#1758
    • 优化 Clickhouse BulkCopy 重命名为:ExecuteClickHouseBulkCopy;#1758
    • v3.2.815

      • 修复 MySqlEnum CHAR/BYTE 替换后前面多个空格的问题;#1737
      • 修复 Clickhouse ToInt32/ToInt64 解析错误;
      • 修复 WithMemory 对 InsertValueSql 属性无效的问题;
      • 修复 ZeroDbContext GroupBy BUG;
      • 修复 聚合根仓储 InsertOrUpdate OneToMany 只插入一条记录的 bug;
      • 优化 TypeHandlers 支持 Enum 枚举映射规则;#1634

      v3.2.812

      • 增加 DbContextOptions.AuditValue 基于 Ioc Scoped 审计值;
      • 优化 ManyToMany 导航属性约定命名匹配嵌套类;
      • 修复 MySql AsTreeCte pathSelector 别名问题;
      • 修复 ClickHouse UpdateDict 报错问题;#1712
      • 修复 MsAccess 日期问题;#1724 #1725

      v3.2.810

      • 修复 GroupBy + WithTempQuery 别名问题;
      • 修复 DbContext/Repository InsertOrUpdate 无变化时触发 Insert 逻辑报错;#1700
      • 修复 ClickHouse 数组类型 hasAny 与 In 解析冲突问题;#1699
      • 补充 WithMemory null/Empty 参数判断;
      • 优化 表达式树解析;

      v3.2.808

      • 增加 低代码扩展包 FreeSql.Extensions.ZeroeEntity;
      • 增加 Clickhouse Bool/Array 类型适配;(感谢 d4ilys)#1568
      • 增加 Clickhouse BulkCopy;
      • 增加 IBaseRepository.AsTable 重载方法支持多表表名设置;
      • 增加 IAsTable 自动分表支持不规则时间间隔;
      • 增加 IAsTable.SetTableName 自动分表设置分表名;
      • 增加 IAsTable.SetDefaultAllTables 自动分表拦截未使用 where 条件的场景;
      • 增加 IUpdate.ExecuteUpdated 指定字段返回;#1681
      • 增加 IUpdate.SetDtoIgnore 忽略Dto更新方法;#1688
      • 增加 ICodeFirst.SyncStructure(TableInfo) 重载方法迁移表结构;
      • 增加 IUpdate/IDelete WhereDynamicFilter API;#1521
      • 增加 WithSql().WhereDynamicFilter 的支持;
      • 增加 pgsql 扩展方法 ISelect.DistinctOn;#1680
      • 修复 Column DbType 与 StringLength 多次替换问题;
      • 修复 Where(a => a.bool) 当使用了 MapType(int) 时出现 bug;
      • 修复 SqlServer 批量更新 bool? null 值生成多余的 case when SQL;
      • 修复 Xugu 批量插入/更新 SQL 报错;
      • 修复 OledbOracle 参数化处理 bug;
      • 修复 多表子查询参数化共享问题;
      • 修复 嵌套查询 DTO 映射可能触发循环引用 bug;
      • 补充 达梦 IDbFirst datetime 处理;
      • 补充 FluentApi AsTable 方法;
      • 优化 自动分表 join 分表(自动贴合);
      • 优化 UnionAll + WithTempQuery 嵌套的 SQL;
      • 优化 Update 无字段时不做任何处理;
      • 优化 IUpdate 未使用 .Set 时忽略执行;#1694
      • 优化 表达式解析变量或常量 ToString;

      v3.2.805

      • 更新 支持到 .net8.0,FreeSql.DbContext 放弃 .netcoreapp2.1 依赖注入;
      • 调整 DataType.SqlServer/MySql/PostgreSQL 默认使用 Ado 连接池;
      • 增加 InsertDict ExecuteIdentity 重载指定自增列;
      • 修复 Expression 导致 AOT 运行失败的问题;
      • 修复 MySql 8.0 索引 DESC 的判断;#1664
      • 修复 Xugu Insert + AsTable + ExecuteIdentity bug;
      • 修复 虚谷日期格式化函数映射;
      • 优化 RereadSql 支持表的其他字段使用;#1655

      v3.2.802

      • 增加 Aop.AuditDataReader 参数属性 PropertyInfo,实现自定义拦截;
      • 修复 v3.2.801 AsTreeCte cte_path 别名问题;
      • 修复 UpdateJoin SetIf 逻辑判断问题;
      • 修复 UpdateJoin IsVersion 字段的别名问题;
      • 修复 RawJoin 可能生成错误的 SQL;
      • 修复 Repository.InsertOrUpdate 更新未变化时的 SQL 错误;#1630
      • 修复 IncludeMany 变异 Where + ToList dto 无法级联;
      • 修复 Ado.net 扩展方法 SqliteCore 支持;#1638
      • 修复 Xugu 有关 bug;
      • 优化 TypeHandlers 支持 DateTime 映射规则;#1634
      • 优化 IUpdateJoin AsTable 同时对多表名设置;
      • 优化 多实例情况下 TableInfo 集合缓存;

      v3.2.801

      • 增加 FreeSql.Internal.Utils.TypeHandlers 自定义类型映射;
      • 增加 IInsertOrUpdate BatchOptions 选项;
      • 修复 v3.2.700 oracle/达梦子查询 BUG;
      • 修复 FreeSql.Geneartor 无法生成人大金仓数据库问题;
      • 修复 ClickHouse CodeFirst 多主键问题;
      • 修复 QuestDB BulkCopy 自定义表名无效的问题;
      • 修复 QuestDb And Or 优先级解析问题;
      • 修复 DynamicEntity 特性构造函数实例化问题;
      • 修复 IInsertOrUpdate BulkCopy 临时表名的问题;#1603
      • 修复 IUpdateJoin + 全局过滤器 + 从表不生效问题;#1612
      • 修复 JsonMap 进行 null 或非 null 查询;#1613
      • 修复 GroupBy + WithTempQuery + .Key.xx + 特性名与实体不同 + 三元表达式解析问题;
      • 修复 MySql AsTreeCte cte_path 可能长度过短问题;
      • 修复 MySql + InsertOrUpdateDict + IfExistsDoNothing 错误;#1601
      • 优化 MySql/Sqlite InsertOrUpdate + IfExistsDoNothing 简化 SQL insert ignore into;#1601
      • 优化 WithLock/WithIndex 非 SqlServer 时忽略;
      • 优化 MySql ServerTime = DateTimeKind.Utc 不支持 utc_timestamp 默认值问题;#1604
      • 优化 ObjectPool 恢复可用的时机;

      v3.2.700 (oracle/达梦子查询有 BUG)

      • 增加 GlobalFilter.Apply before 参数将过滤条件插入 where 之前;#1566 #1492
      • 增加 多表 As 设置别名的方法 fsql.Select().As("t1", "t2");
      • 优化 WithTempQuery + SqlServer 未指定 OrderBy 的分页;
      • 优化 GetPropertiesDictIgnoreCase 不返回没有 get 的属性;
      • 修复 QuestDB Guid 类型的问题;
      • 修复 BaseEntity 子查询 .Where 问题;#1586

      v3.2.698

      • 增加 FreeSqlBuilder UseAdoConnectionPool 更换连接池方案;#1524 #1343 #1283 #755
      • 增加 InsertOrUpdateDict WhereIdentityPrimary 方法;
      • 增加 pgsql 索引 B_Tree, Hash, GiST, GIN, SP_GiST, BRIN;
      • 修复 pgsql jsonb poco 方案联表查询问题;#1549 #1071
      • 修复 pgsql Geo 函数自定义解析深度问题;#1422
      • 修复 PgCopy 处理 jsonb 类型的问题;#1532
      • 修复 Enum.ToString() 即使 MapType=int 也应解析成 string;#1252 #806
      • 修复 repository/dbset AddRange AuditValue IEnumable 失败的 bug;#1545
      • 修复 达梦某情况连接串解析 user id 问题;
      • 修复 QuestDB 表达式解析 DateTime.UtcNow bug;
      • 修复 QuestDb BulkCopy在特定情况下无法解析表名问题;
      • 优化 QuestDB Guid 映射;
      • 优化 QuestDB 类型映射,表达式函数解析,新增 QuestFunc 函数解析;
      • 优化 uow + ISelect.ToUpdate 事务传播;#1562
      • 调整 QuestDB SampleUnits 命名,去掉 s;

      v3.2.697

      • 增加 IInsertOrUpdate.UpdateSet 指定更新;
      • 修复 3.2.696 自动分表 bug;#1527 e79860164d5d12e4f7df747f0e29503dff301cb7

      v3.2.696

      • 修复 + AsType + (a as BaseEntity) 解析问题;#1427
      • 修复 IUpdateJoin 联表更新表达式赋值解析报错;
      • 修复 MySqlProvider .NetFramework 下可能报初始化类型错误;
      • 修复 自动分表 IUpdate/IDelete AsTable 不生效的问题;
      • 修复 FromQuery + WithTempQuery 嵌套查询多层后别名问题;#1510
      • 修复 WithTempQuery + Oracle 分页问题;#1519
      • 修复 Oracle 插入 LONG RAW 类型的问题;
      • 修复 BulkCopyUpdate 临时表名大小写问题;
      • 优化 IUpdate 批量 case when 同值的 SQL 生成;#1393
      • v3.2.695

        • 增加 虚谷数据库 FreeSql.Provider.Xugu;
        • 增加 IInsert IgnoreInsertValueSql 方法临时忽略 InsertValueSql 设置;
        • 增加 部分 LocalExecuteScalar Aop.CommandAfter 事件;#1481
        • 增加 QuestDB SampleBy 对准日历参数;
        • 增加 动态操作创建实体API,fsql.CodeFirst.DynamicEntity;(感谢 Daily 贡献)
        • 修复 OracleOledb 引起的读取类型问题;

        v3.2.693

        • 添加 IInsertOrUpdate 高性能插入或更新 SqlServer/MySql/Oracle/Pgsql/达梦/人大金仓;
        • 增加 IUpdate 高性能批量更新 Oracle/达梦/人大金仓;
        • 增加 TableInfo.SetAsTable 自动分表的设置;
        • 修复 SqlServer 自增 BulkUpdate bug;#1476
        • 修复 表达式树解析 string.Concat 多于3个时的 bug;
        • 修复 UpdateJoin null 错误;
        • 优化 UpdateJoin Set 固定值解析;
        • 优化 .Select().WithSql(sql).ToList() 体验;

          v3.2.692

          • 增加 IUpdate.Join 联表更新功能;(高风险操作,请谨慎使用)
          • 修复 InsertOrUpdateDict Oracle byte[] 长度判断问题;#1462
          • 修复 InsertDict 等字典操作在 SqlServer 下的问题;
          • 修复 ISelect FromQuery 多表重载可能出现 null 报错;

          v3.2.691

          • 增加 ISelect FromQuery 重载多表嵌套;
          • 增加 实体备注从 Description/Display/DisplayName 等特性兼容读取;
          • 增加 ISelectGrouping First 方法;
          • 增加 IInsertOrUpdate SetSource 重载方法;
          • 优化 WithTempQuery + ToList 使用子查询;
          • 优化 IInsertOrUpdate SetSource tempPrimary 自增的忽略插入;
          • 修复 Clickhouse 自动分表 where 条件分析问题;
          • 修复 DBFirst 延迟加载 ManyToOne 返回总是NULL;#1451
          • 修复 QuestDB CodeFirst AutoSubtableAttribute/ColumnAttribute判断bug

          v3.2.690

          • 增加 [Navigate(xx, TempPrimary = xx)] 与非主键关联;(仅支持查询)
          • 修复 3.2.689/3.2.688 WithTempQuery DTO 映射查询遗留问题;
          • 优化 AsTable 自动分表,提供超始小时的设置;

          v3.2.688

          • 增加 QuestDB 时序数据库支持;(感谢 Daily 贡献)
          • 修复 Array.Any OR 表达式树解析 bug;
          • 修复 GroupBy 之后 WithTempQuery 参数化时未传递的问题;
          • 修复 BulkUpdate 触发 Aop.AuditValue Insert 类型的问题;
          • 修复 Ado.ExecuteNonQuery 超时参数未生效的问题;#1441
          • 修复 Firebird CodeFirst 索引 DESC 问题;#1413
          • 优化 Firebird CodeFirst 迁移代码;
          • 优化 Firebird 表达式树位运算的适配解析;#1413
          • 优化 SqlServer timestamp 行版本的支持;#1412
          • 优化 pgsql15.0 部分类型兼容;#1436
          • 完善 Sqlite DbFirst 获取索引信息;#1425
          • 优化 适配达梦最新驱动;
          • 优化 IUpdate 组合更新方式;
          • 优化 IUpdate.Set(xx, null) 的情况;
          • 优化 ISelect AsType 的父子类转换时的情况;#1427
          • 优化 支持动态操作 IncludeByPropertyName then.WhereDynamicFilter 操作;
          • 优化 WithTempQuery 场景的 DTO 映射查询;
          • v3.2.687

            • 修复 3.2.686 JsonMap bug;
            • 优化 参数化增加 ExpandoObject 支持;#1403
            • 优化 pgsql15.0 Version 版本号处理;
            • 优化 pgsql CodeFirst Syncsture CREATE INDEX code;

            v3.2.686

            • 增加 FreeSqlBuilder UseQuoteSqlName 设置不使用 [] `` "" 限定符号;
            • 增加 Aop.CommandBefore 设置 .CommandText = null 可拦截某次执行;
            • 增加 IAdo.ExecuteNonQuery 重载方法(虚谷数据库);
            • 修复 UseSlaveWeight 异步下可能无效的问题;#1382
            • 修复 HzyTuple 嵌套解析问题;#1390
            • 修复 AsType 表达式解析问题;#1389
            • 修复 pgsql OnConflictDoUpdate 临时主键问题;#1393
            • 修复 ClickHouse 联表查询 GLOBAL left join、Ado.Query * 问题;#1383
            • 优化 ClickHouse like 为 positionCaseInsensitive #1386
            • 优化 JsonMap 对基础类型的无效判断;#1385
            • 优化 IUpdate 批量 case when 同值的 SQL 生成;#1393
            • 优化 IAdo.ConnectionString 使用 UseConnectionFactory 时值为 NULL 的问题;

            v3.2.685

            • 增加 IUpdate BulkCopy 批量更新扩展方法;(暂时支持 SqlServer/MySql/PostgreSQL)
            • 修复 ClickHouse CodeFirst 表结构同步问题;
            • 修复 ISelectGrouping ToSql AsProperty 别名无效问题;
            • 优化 UnitOfWork 与 ForUpdate 事务开启逻辑;
            • 优化 MySqlConnector MySqlDataTime 读取;
            • 优化 linq.dynamic Expression Invoke 解析;#1378

            v3.2.684

            • 修复 Firebird CodeFirst.SyncStructure 自增主键错误;(受影响版本 3.2.666-3.2.683)
            • 修复 Firebird [Index("{tablename}_Name" 分表索引名未处理的 bug;#1346
            • 修复 InsertDict DBNull.Value 值无法插入的问题;#1336
            • 修复 fsql.InsertOrUpdate SetSource(sql) 无效的 bug;
            • 优化 string[].Any(..) 表达式树解析;ReplaceParameterVisitor
            • 优化 ISelect 对象 .LeftJoin 表别名;#1348

            v3.2.683

            • 修复 Repository/DbContext 同一实例执行报错后续无法再 CRUD;
            • 修复 UnitOfWorkManager + Repository.SaveMany 事务切换问题;
            • 修复 导航属性 PgArrayToMany 数组字段为空时的 bug;
            • 修复 导航属性 PgArrayToMany DTO 异步查询报错的 bug(同步方法正常);
            • 修复 SqlExt count/avg 开窗函数参数;#1321
            • 修复 Sqlite TimeSpan 类型映射错误;
            • 修复 Sqlite Attachs 多库索引 {tablename} 问题;
            • 修复 EndEdit 未触发 OnEntityChange;
            • 修复 fsql.InsertOrUpdate CanInsert=false,CanUpdate=true (mysql/pgsql)不生效的 bug;
            • 修复 聚合根仓储(实验) InsertOrUpdate 重复插入的 bug;
            • 修复 聚合根仓储(实验) Update 未更新自增状态管理的 bug;
            • 修复 SqlServer WithSql + WithLock bug;
            • 修复 ClickHouse Ado 参数化无效的问题;#1340
            • 修复 Odbc 自定义 N'' 无效;#1332
            • 修复 DbContext DbSet 属性初始并发时未触发 OnModelCreating;#1333
            • 修复 Utils.ReplaceSqlConstString bug;
            • 扩展 UseMessagePackMap 示例;
            • 优化 UpdateDict 支持 .IsVersion 乐观锁设置;
            • 优化 InsertDict DBNull.Value 值处理;#1336
            • 优化 表达式树解析 w => (w as TBase).Id;
            • 优化 导航属性集合 .Exists 效果与 .Any 相同;
            • 优化 MySql CodeFirst 判断表是否存在的查询语句性能;
            • 优化 SqlServer2005 TOP 1 查询;
            • 完善 SqlServer WithLock + WithIndex 扩展方法;

            v3.2.682

            • 优化 人大金仓 KingbaseES 兼容 V8R3/V8R6;#931 #325

            v3.2.681

            • 修复 3.2.666-3.2.680 子查询的特殊 bug;
            • 增加 fsql.Ado.QuerySingle(() => new {}) 扩展方法实现无表查询 SELECT now(), utc_timestamp()
            • 优化 min pool size 与 max pool size 连接串设置;
            • 优化 导航属性未配置关系先 Where 后 InnerJoin 的问题;

            v3.2.680

            • 优化 WithTempQuery 多对象选择同别名问题; #1192
            • 修复 WithTempQuery + Column + GroupBy + Key 指定列名的问题;
            • 修复 GlobalFilter.ApplyIf + Repository.DataFilter.DisableAll 可能不生效的问题;
            • 修复 UpdateDict 不支持 SET NULL 的更新;#1257
            • 修复 ClickHuse DBFrist ExistsTable;
            • 增加 ClickHouse LimitBy/Sample 查询方法;
            • 增加 所有国产数据库支持 CustomMySql、CustomPostgreSQL、CustomOracle、CustomSqlServer 自定义适配;
            • 优化 DbSet/Repository 防止 Aop.AuditValue 触发两次;
            • 优化 表达式树解析为 NULL 的提示;
            • 优化 UseMappingPriority 与实体元数据逻辑;#1247
            • 优化 ServerTime 与 IUpdate.Set 指定更新的重复问题;#1251

            v3.2.669

            • 修复 WithTempQuery + RereadSql 无别名的问题;
            • 修复 WithTempQuery + FromQuery + 子查询的 bug;
            • 修复 WithTempQuery + Column(Name 别名问题;
            • 优化 CheckAvailable retry 重试一次;

            v3.2.666

            这是一个长期稳定的版本,会持续一年时间只修 bug 不加新功能。

            • 增加 WithTempQuery + FromQuery 嵌套查询功能; #1192
            • 增加 FreeSql.Provider.OracleOledb 解决 US7ASCII 中文乱码问题;
            • 增加 UnionALL 联合查询; #1106 #1104 #668 #478 #432 #213 #138
            • 增加 WithMemory 基于内存查询,对标 WithSql;
            • 增加 AuditValue ObjectAuditBreak 实现对象只触发一次审计事件;
            • 增加 IncludeByPropertyName 重载 then 参数;#1214
            • 增加 IInsertOrUpdate.SetSource(sql) 重载方法;
            • 增加 DynamicFilterCustom 增加支持 Expression 返回值;
            • 修复 UseGenerateCommandParameterWithLambda(true) 与 GroupBy 查询不生效 bug;
            • 修复 ToList 子查询开启参数化重复参数的 bug;#1205
            • 修复 string[] JsonMap bug; #653
            • 修复 ManyToMany 不会触发 AsTable 的 bug;
            • 修复 Clickhouse Insert AsTable 表名处理 bug;
            • 修复 ClickHouse 单条记录插入\t \n /失败的 bug;
            • 修复 子查询使用基类 + AsType 可能产生的 bug;#1215
            • 修复 SqlServer2005/2008 Skip 问题(未设置 Take 时);
            • 修复 MySql/SqlServer DbFirst 获取字段位置的问题;
            • 修复 DbContext/Repository Primary decimal 状态管理 key 精度处理 bug;
            • 修复 DbContext/Repository 无构造函数的实体对象不跟踪问题;
            • 修复 ToSql AsProperty 大小别名问题;
            • 优化 IncludeByPropertyName + AsType;
            • 优化 字典crud TableInfo 合并规则;#1180
            • 优化 IUpdate.Set 字符串累加本身为 NULL 的情况;#1209
            • 优化 WhereDynamicFilter DateRange 情况;
            • 优化 Oracle IN :ids 值传入 IList 时报错;
            • 优化 Dameng 单独适配 netcore3.1;#1094
            • 优化 PrevReheatConnectionPool 预热;
            • 优化 全局过滤器禁用时子查询传播问题;#1208
            • 优化 子查询别名为 a 的情况;#1201

            v3.2.665

            • 增加 IsVersion string 字符串乐观锁;#1178
            • 增加 IUpdate.SetSource ignoreVersion 参数可实现忽略乐观锁;#1161
            • 增加 IInsertOrUpdate.SetSource(items, tempPrimarys) 指定临时主键参数;#1160
            • 增加 DbContext/Repository 审计日志 ChangeInfo 增加属性 EntityType;
            • 修复 SqlServer WithLock 子查询不生效的 bug;#1159
            • 修复 AsTreeCte + AsTable 无效的 bug;#1176
            • 修复 UseGenerateCommandParameterWithLambda(true) 问题;#1173 #900
            • 修复 SetSource 临时主键重载方法 + Column 设置 Name 后无效的 bug;
            • 修复 Dto 映射查询 Negate 表达式解析 bug;
            • 修复 pgsql OldName + XML 注释迁移代码顺序问题;
            • 优化 string Contains 模糊查找 % 的情况;

            v3.2.664

            • 修复 UseGenerateCommandParameterWithLambda 子查询并发 bug;#1155 (重要)
            • 修复 pgsql Dto 映射使用常量 false 转换失败;
            • 修复 IIF 三元表达式树解析 bool HasValue 问题;
            • 修复 MySqlConnector BulkCopy 映射顺序问题;
            • 优化 XML 注释读取支持 interface;
            • support provider、Extensions Exceptions 多语言

            v3.2.662

            • 调整 pgsql10 自增映射使用 GENERATED BY DEFAULT AS IDENTITY,低版本仍然使用 serial;
            • 增加 PgArrayToMany 专属导航属性;#1145
            • 增加 ObservableCollection 级联加载和保存;
            • 优化 FluentApi 继承关系可直接 ConfigEntity 生效;#1144
            • 修复 达梦 min pool size 预热数量匹配 bug;
            • 修复 v3.2.620 - v3.2.661 子查询 sum/min/max/avg 默认加 isnull 防止为 NULL 情况,日期类型处理错误 #1140 1b84a0069679c92ccaff9aa8c33023e4d34262cd
            • 修复 AsTable 子查询未传播的问题;#1103
            • 修复 IncludeByPropertyName fromFirstTable 判断错误;#278
            • 修复 GroupBy 特殊情况下 AsProperty 无效的 bug;#1141
            • 修复 MySql CodeFirst OldName + Comment 迁移问题;#1147
            • 修复 pgsql DbFirst 未正确获取 Position 值;#1154

            v3.2.661

            • 增加 UseMappingPriority 指定映射优先级;#387 #69 #99
            • 增加 AuditValueEventArgs Object 参数;#1128
            • 修复 pgsql varchar(120) CodeFirst 迁移不修改长度;
            • 修复 ISelect.InsertInto 未执行自动迁移;
            • 修复 UseCommandParameterWithLambda IN 参数化判断 的逻辑 bug;#1137
            • 优化 连接池不可用、定时检查;
            • 优化 Limit + Sum/Avg/Max/Min 为嵌套查询;
            • 优化 GroupBy Page 未排序的查询;#1126

            v3.2.651

            • 增加 DTO 映射非导航属性的子表查询 ToList,可直接返回集合;
            • 增加 Array.Any(x => x.id == a.Id && ..) 表达式树解析;#243
            • 增加 pgsql numeric -> BigInteger 映射;#1100
            • 增加 #1108 Exception 国际化;
            • 增加 DynamicFilterCustom 参数 object sender;#1113
            • 增加 Fluent API 以继承接口的形式配置实体;#937
            • 修复 Oracle AsTable 分表嵌套 SQL 拼错错误;#1098
            • 修复 AsTable ManyToMany IncludeMany 无效的问题;#1103
            • 修复 AsTable 分表 ToAggregate 无法得到汇总;#1115
            • 修复 Repository.DataFilter 对 GlobalFilter 控制无效的 bug;#1028 #846
            • 修复 IN 查询区分 varchar/nvarchar;
            • 修复 Oracle clob 参数化类型设置问题;#1116
            • 修复 MySql 子查询 Enum MapType(int) 表达式判断解析 bug;#1118
            • 优化 AsTable 自动分表 Where Equal 判断;#1104
            • 优化 子查询 sum/min/max/avg 默认加 isnull 防止为 NULL 情况;
            • 优化 EnableCascadeSave 级联保存执行逻辑,提升性能;
            • 优化 RawJoin 支持 FULL JOIN 等自定义联表映射;
            • 优化 IncludeMany 三级导航对象自动 _included;#1113

            v3.2.100 - v3.2.640

            • 增加 InsertDict/UpdateDict/DeleteDict/InsertOrUpdateDict 针对字典的 CUD 方法;#481
            • 增加 UseSlaveWeight 读权重设置;#1046
            • 增加 [Table(AsTable = xx)] 自动分表特性,待完善;#1066
            • 增加 FreeSql.Provider.SqliteCore 支持Sqlite加密;
            • 增加 IList IncludeByPropertyName 扩展方法,支持字符串参数;
            • 增加 DbSet/Repository DeleteCascadeByDatabase 级联删除(基于数据库);
            • 调整 DbSet/Repository EnableAddOrUpdateNavigateList 支持 OneToOne 级联保存、级联删除(基于对象);
            • 修复 Delete.Where in 查询为空时,异步操作仍然执行删除;#1068 【受影响版本 v3.2.302】
            • 修复 InsertOrUpdateDict 异常;#1067 【受影响版本 v3.2.301、v3.2.300、v3.2.200】
            • 修复 InsertDict 部分新功能遗留问题(特别是 Oracle);【受影响版本 v3.2.301、v3.2.300、v3.2.200】
            • 修复 InsertDict/UpdateDict 等字典操作在 DbContext.Orm 下无法使用的 bug;#1064 【受影响版本 v3.2.300、v3.2.200】
            • 修复 MapType 复杂表达式树解析 bug;#1062
            • 修复 UseGenerateCommandParameterWithLambda 对不可参数化的数据类型冲突的 bug;#1061 #900
            • 修复 MySql Set 类型空格处理问题;#1059
            • 修复 SaveManyAsync 多对多历史漏改的问题(同步无问题);
            • 修复 OR 表达式处理情况;#1047
            • 修复 ClickHouse 设置 NoneParameter 会报错问题;
            • 修复 Clickhouse 连接池使用问题;#646 #968 #969 #943
            • 修复 pgsql IList -> JArray 映射;#1092
            • 修复 pgsql DbFirst IsPrimary bug;
            • 修复 JsonMap 与导航属性的联表查询报错的 bug;#996
            • 修复 子查询 WhereIf 可能失败的 bug;
            • 修复 StringLength 设置后 IsNullable = false 无生效的问题;
            • 修复 UseConnectionFactory 参数化问题;
            • 修复 参数值为原始 DbParameter 时转换类型报错;
            • 修复 UseGenerateCommandParameterWithLambda 子查询 IN bug;#900
            • 修复 InsertValueSql 在仓储插入后不返回最新值;
            • 完善 SqlServer BulkCopy 插入 DateTime 最小值问题;
            • 优化 导航集合属性访问,可省略 AsSelect;
            • 优化 DbContext/Repository Update 实体有 ServerTime 既使无状态变化也必然更新的逻辑;
            • 优化 DbContext/Repository 插入非主键自增回填;
            • 优化 ToList jsonb 映射;
            • 优化 dywhere IN 查询按 500 元素分割;#1091
            • 优化 IIF 表达式解析;

            v3.0.100

            • 增加 南大通用 Gbase 国产数据库支持;
            • 增加 ClickHouse 数据库语法支持;
            • 增加 DbContext/Repository 比较变化方法 CompareState;
            • 增加 DynamicFilter Custom 自定义解析;
            • 增加 ToDataTableByPropertyName 动态查询功能;
            • 优化 兼容排序 OrderBy(a => new {}) 语法;
            • 优化 pgsql jsonb 映射,支持 List,mysql limit in 子查询;
            • 优化 InsertOrUpdate<> 使用 InsertOrUpdate>时,提示友好异常。
            • 修复 BulkCopy 与线程事务未传播的 bug;#962
            • 修复 AsTreeCte + RereadSql 不能同时使用的 bug;#964
            • 修复 FreeSql.Generator 工具生成model失败 #882

            v2.6.100

            • 修复 fix sqlite AddMinutes seconds->minutes #774
            • 修复 Update操作的时候CanUpdate=false 未生效 #803
            • 优化 将Freesql的dynamicfilterinfo标记为[serialable] #802
            • 修复 Sqlite where.And(x => x.PublishTime.Year == 2021); 查询问题 #804
            • 增加 支持符号调试 #679
            • 增加 IUnitOfWork.States 自定义状态管理,便于扩展;

            v2.5.300

            • 修复 ISelect.AsTable 后 .ToUpdate/ToDelete 无效的 bug;#815
            • 修复 MERGE INTO 别名与 SQL 关键字冲突的 bug;#816
            • 修复 Oracle IncludeMany IN 元素超过 500 数目的问题;#843
            • fix IgnoreColumns CanUpdate false not work #803
            • fix sqlite where datetime year,month 查不出来数据,Ticks 精度到毫秒,处理Millisecond无值的情况 #804
            • Add Serializable #802
            • Add string.Concat 返回 string.Empty

            v2.5.200

            • 修复 Repository/DbContext 批量修改可能无效的 bug;#709
            • fix sqlite AddMinutes seconds -> minutes #774
            • fix ExecuteMySqlBulkCopyAsync .net core 3.1 Method not found #783

            v2.5.100

            • 增加 ISelect.Page(BasePagingInfo pagingInfo) 方法重载;
            • 修复 IncludeMany + AsTreeCte 不能组合使用的问题;#760
            • 修复 Ado.CommandFluent 存储过程参数化问题;#739
            • 修复 IUpdate.SetDto bug;#754
            • 修复 pgsql 中 hstore 中 value 错误赋值为 key 的问题,并允许 value 值为 NULL;
            • 修复 byte[]类型的乐观锁初始化问题;

            v2.3.200

            • 修复 Repository/DbContext 批量修改可能无效的 bug;#709
            • 修复 Oracle/Dameng 分组查询后分页的 bug;#710
            • 优化 fsql.Transaction 线程事务;

            v2.3.106

            • 修复 v2.3.100 GlobalFilter 在 Repository 失效的 bug;
            • 优化 BaseDbProvider、AdoNetExtensions 内部定义;
            • 增加 IUpdate.SetSource 批量更新时指定主键;#337

            v2.3.100

            • 增加 FreeSql.Provider.Custom 自定义适配访问任何数据库;
            • 增加 Column 特性 RewriteSql/RereadSql;
            • 增加 ISelect.OrderByRandom() 随机排序适配;
            • 增加 SqlExt.DistinctCount 扩展方法;#674 #533
            • 增加 Aop Before/After States 共享状态;
            • 优化 ManyToMany 导航属性子查询支持 ToList;
            • 优化 HzyTuple 子查询解析;
            • 优化 指定 Dto 查询对 c# 字段的支持;
            • 优化 GlobalFilter 子查询传播重复的问题;#642
            • 优化 Console.Write 平台兼容问题;#643
            • 优化 DbSet/Repository 级联保存时,忽略未配置的导航属性;
            • 优化 FreeSql.Extensions.Linq Select 选定字段查询方法;#674 #533
            • 优化 Repository.DataFilter 可禁用 GlobalFilter;
            • 优化 WhereDynamicFilter;
            • 修复 延时属性时级联保存失败的 bug;
            • 修复 分组查询后,无法使用子查询的问题;
            • 修复 UseGenerateCommandParameterWithLambda + Enum + MapType(string) bug;
            • 修复 ToChunk + IncludeMany 二级集合属性的 bug;
            • 修复 JsonMap 序列化判断 bug;
            • 修复 Sqlite DbFirst 获取自增的 bug;
            • 修复 Oracle DbFirst date 类型 bug;#627
            • 修复 ISelect2`16 OrderByIf bug;
            • 修复 神通 Linux not supported 问题;#656
            • 修复 WhereDynamicFilter 普通多表查询时别名判断的 bug;
            • 修复 AsTreeCte 事务传播 bug;
            • 修复 表达式树解析 MapType 把小数位转换丢失的 bug;
            • 修复 SqlServer 支持 Chinese_PRC_CS_AS 区分小大写;#684

            v2.0.105

            • 修复 Ado.Net 扩展方法的多表查询 bug;#592
            • 优化 ToSql 别名大小写问题;#467
            • 优化 IUnitOfWork/DbContext/Repository .Orm.Ado 和 CRUD 都与自身事务保持一致;
            • 完善 IDelete WhereIf(bool, sql) 方法;

            v2.0.102

            • 优化 DbFirst 模式长内容未设置 StringLength = -1 写入问题;
            • 优化 子查询(多表)别名;
            • 优化 IUpdate.Set 支持位运算表达式树解析;
            • 优化 单表查询 ExpressionTree 性能;
            • 修复 ISelect.InsertInto 设置别名时无法使用的错误;#576

            v2.0

            • 增加 IncludeByPropertyName 按属性名进行 Include/IncludeMany 操作;#278
            • 增加 ISelect<...> 多表查询 HzyTuple 新姿势;(感谢 HZY 贡献)
            • 增加 ISelect Cancel 用于取消本次查询;
            • 增加 IncludeIf/IncludeByPropertyNameIf 方法;
            • 增加 表达式树函数解析 byte[] Length;#505
            • 增加 FreeSql Async CancellationToken 参数;#537
            • 增加 FreeSql.DbContext/Repository Async CancellationToken 参数;#537
            • 增加 Oracle/达梦 BulkCopy 支持;
            • 增加 IsVersion 对 byte[] 的支持;#548
            • 增加 IN 参数扩展 where id in @ids;#560
            • 增加 IAdo.QuerySingle 查询单条记录;#560
            • 增加 pgsql 表达式树解析 hstore[""];
            • 优化 varchar/nvarchar 的 NoneParameter 处理;#519
            • 优化 表达式树 SqlExt.IsNull 对布尔类型的解析;#500
            • 优化 MapRead 对 NULL 字段的处理;
            • 优化 表达式树三元表达式解析,当 Test 为变量时不解析成 case when end;
            • 优化 AsTreeCte 对 MySql 5.6 的兼容;#536
            • 优化 分页 Page(..).Count() 顺序问题;
            • 优化 自动 IsIgnore 处理;
            • 移除 ISelect/IUpdate/IDelete class 约束限制;
            • 修复 线程事务嵌套事务的 bug;#502
            • 修复 #454 优化遗留的 bug,影响 Aop.AuditValue 事件;#521
            • 修复 实体类拥有构造参数时,ToList 映射查询无效的 bug;
            • 修复 FreeSql.Generator 处理 SqlServer 默认值的问题;
            • 修复 SqlServer RowNumber 分页有可能产生顺序不对的 bug;
            • 修复 .net5 单文本部署读取注释报错;

            v1.10.1

            • 增加 ISelect.InsertInto 将查询转换为 INSERT INTO t1 SELECT ... FROM t2 执行插入;#469
            • 增加 GlobalFilter.ApplyOnly 继承的实体才生效;#495
            • 增加 FreeSql.Generator 参数 -readkey 0 的设置;
            • 优化 WhereDynamicFilter 支持 string 比较大小 > < >= <=;#479
            • 优化 IncludeMany 筛选字段中未指定主键,并且 then.IncludeMany 继续向下,则自动附加查询主键;
            • 优化 WhereDynamic 传入 DynamicFilterInfo 也能执行;
            • 优化 WhereDynamic 支持按字段名、属性名匹配;
            • 优化 实体类注释,基类在其他 Assembly 时也能读取;
            • 优化 支持实体类使用 new 重写属性;
            • 优化 ToAggregate 执行时忽略已设置的 OrderBy;
            • 优化 dto 映射查询时忽略已指定的映射,避免重复查询字段;#494
            • 优化 MySql CodeFirst 索引的建立 ;#498
            • 补充 异步方法 ToListAsync(a => {}) 对 IncludeMany 的支持;
            • 修复 AsTreeCte 开启自动迁移时,错误的创建了 as_tree_cte 表;#476
            • 修复 内部 decimal 默认值在 core 3.1+ 报错的问题;
            • 修复 decimal? 可空数字设置 Column Scale 无效的问题(decimal正常);
            • 修复 DbContext/UnitOfWork EntityChangeReport 参数 BeforeObject 值无效的 bug;
            • 修复 lambda 表达式解析变量转换时的 bug;#490
            • 修复 Firebird Embedded 版本系统表 isidentity_type 兼容问题;
            • 修复 Firebird Embedded 2.5 不支持 boolean 的 bug;

            v1.9.0

            • 增加 FreeSql.Provider.Firebird 数据库实现 #443;
            • 增加 IncludeMany(a => a.Childs).ToList(a => new { a.Childs }) 指定集合属性返回;
            • 增加 ISelect<11..16> 16 个联表查询;
            • 增加 ISelect Aggregate(lambda, out var result) 方法;
            • 增加 ISelect OrderByIf 方法 #446;
            • 增加 ISelect OrderByPropertyName 方法 #446 #278 #361 #197;
            • 增加 IUpdate/IDelete WhereIf 方法 #446;
            • 增加 ISelect/IInsert/IUpdate/IDelete CommandTimeout 方法设置命令超时;
            • 增加 GlobalFilter.ApplyIf 创建动态过滤器;
            • 增加 SqlExt.IsNull 方法;
            • 增加 Oracle DbFirst 视图的支持;
            • 增加 IAdo.CommandFluent(sql) 方法执行 SQL 命令;
            • 优化 string IsNullable = false 时插入 null 自动转为 "" #445;
            • 优化 GetDbParamtersByObject 参数为字典时修剪 @?: 前辍 #456;
            • 优化 SqlExt.Sum/Max/Min/Avg 同时支持开窗或普通聚合函数;
            • 优化 ToSql FieldAliasOptions.AsProperty 别名问题;#467
            • 优化 FreeSql.Generator -Match 支持生成一个表;
            • 调整 FreeSql.Generator 移除 CanInsert = false 特性生成;
            • 调整 AdoNet CRUD 扩展方法到 namespace FreeSql;
            • 修正 SqlServer UseConnectionFactory 类型标识;
            • 修复 FreeSql.DbContext 对同一实体重复 Update,第二次无效的 Bug;
            • 修复 ISelect Any(lambda) 条件被附加的问题,不便于再次使用 ISelect 对象;
            • 修复 ISelect ToDelete/ToUpdate 事务对象未传播的 bug;
            • 修复 ISelect Include 多表字段名相同(不区分大小时)时的 bug;
            • 修复 IAdo.Query 返回实体中带有延时导航属性,读取顺序不对的 bug;
            • 修复 Ado.Net Crud 扩展方法事务的友好异常提示;
            • 修复 使用查询参数化功能时 ToList 子查询未传播参数列表的 bug;#462
            • 修复 子查询 Count/Max/Min/Avg/Sum 使用了 Limit(1) 的 bug;#462
            • 修复 IAdo.Query<匿名类>(sql) 错误;
            • 修复 SqlServer SqlBulkCopy IgnoreColumns 无效的 bug;
            • 修复 达梦 DbFirst 获取字段 IsNullable 无效的问题;#454
            • 补充 达梦 DbFirst int 类型识别;

            v1.8.1

            • 增加 人大金仓 Ado.Net 实现 FreeSql.Provider.KingbaseES #325;
            • 增加 DbContext/Repository BeginEdit/EndEdit 批量编辑数据的方法 #397;
            • 增加 FreeSql.Provider.SqlServerForSystem 使用 System.Data.SqlClient.dll 兼容更多运行平台 #401 #398 #395 #392 #391;
            • 增加 lambda 表达式树解析子查询 ToList + string.Join() 产生 类似 group_concat 的效果(适配了 sqlserver/pgsql/oracle/mysql/sqlite/达梦/金仓) #405;
            • 增加 IDbFirst.ExistsTable 方法判断表是否存在;
            • 增加 IDbFirst.GetTableByName 方法获取单表信息,包括列详情、主键、唯一键、索引、备注;
            • 增加 ICodeFirst.SyncStructure 强制同步参数 isForceSync #412;
            • 增加 ISelect<2..10> 多表 WithSql 方法;
            • 增加 IDbConnection/IDbTransaction 对象的扩展方法 Select/Insert/Update/Delete 实现 CRUD #267;
            • 增加 IAdo.GetDbParamtersByObject 方法获取 DbParameter[];
            • 增加 IAdo.ExecuteConnectTest 快速判断连接是否可用 #113;
            • 增加 Aop.AuditDataReader 事件拦截 DataReader 读取值 #436;
            • 修复 fsql.InsertOrUpdate 在同线程事务模式内使用的 bug #402;
            • 修复 fsql.Ado.ExecuteDataTable 当记录不存在时,未返回 Columns 设置 #403;
            • 修复 IInsert/IUpdate BatchProgress 异步执行不生效的 bug;
            • 修复 1.7.1 IsNullable 遗留问题;
            • 修复 Oracle nvarchar2 主键批量更新的问题;#411
            • 修复 达梦 DbFirst 无法识别字段是否为主键的问题;
            • 修复 SqlExt PartitionBy 无法传入多列的问题;
            • 修复 WhereDynamicFilter System.Text.Json 反序化后的类型转换问题 #371;
            • 修复 ISelect ToList("id,title") 属性和字段顺序不同时的问题;
            • 修复 Dto 映射查询属性名不区分大小写 bug #427;
            • 修复 参数化 Column DbType 设置特殊值时的类型判断;
            • 修正 UnitOfWorkManager Requierd 命名为 Required;
            • 优化 pgsql DbFirst 序列的识别,以及 pgsql10 的自增识别;
            • 优化 IsNullable = false 插入的数据值为 null 则以默认值插入(防止DB报错) #384;
            • 优化 GroupBy ToList lambda 中可以直接使用 a.Key;
            • 优化 NoneParameter Oracle 文本超长的问题;
            • 优化 lambda 使用 a == null ? 1 : 0 支持类似这样直接判断实体的情况;
            • 优化 IUpdate.SetSource 机制不更新主键字段;
            • 优化 IUpdate.SetSource 无主键的错误提示;
            • 优化 WhereDynamic 传入集合对象时,逻辑 OR 换为 IN;
            • 优化 指定导航属性查询时,如果下级导航属性被 Include 过,则将他们也查询出来;
            • 完善 AsTreeCte + ToUpdate/ToDelete 实现树所有子节点删除或更新;
            • 完善 DbUpdateVersionException IsVersion 行版本异常;
            • 完善 DbContext/UnitOfWork EntityChange 更新对象之前的值;
            • 完善 ToChunk 分块加载查询,应用到 ISelect`1..10 中;
            • 完善 ISelect.WithSql 方法,支持传入参数化 #413;

            v1.7.1 (Microsoft.Data.SqliClient 兼容问题)

            • 增加 ColumnAttribute Precision/Scale 设置;
            • 增加 "x1".First/FirstOrDefault 表达式函数解析;
            • 调整 ColumnAttribute IsNullable 对 int/long 等值类型也可生效;#384
            • 修复 $"{a.Code}_{a.Id}" lambda 解析当 {} 多于3个时的 bug(.net 内部机制很坑);
            • 3个 {} 时,Arguments[1..3] 解析出来是分开的
            • 4个 {} 时,Arguments[1] 只能解析这个出来,然后 [1] 里面是 NewArray []
            • 补充 fsql.InsertOrUpdate UpdateColumns 数据存在时只更新指定的字段 #394 #330 #115 #17;

            v1.7.0

            • 增加 实体属性 char 类型的映射 #381 #235;
            • 增加 $"{a.Code}_{a.Id}" lambda 解析;
            • 增加 IInsert/IUpdate BatchProgress 方法处理批量插入/更新时的进度;
            • 增加 ISelect ToChunk 停止读取的逻辑控制 #360;
            • 增加 FreeSql.Provider.PostgreSQL NetTopologySuite 类型映射,保留 LegacyPostgis 映射 #369;
            • 修复 DbSet/Repository 批量级联保存(ExecuteInserted)失败的问题 #362;
            • 修复 多对多导航属性 AsSelect() 无法使用 .Count() 的问题 #362;
            • 修复 WhereDynamicFilter 多级 Logic 未生效的 bug;
            • 修复 WhereDynamicFilter 在 System.Text.Json 下的问题 #371;
            • 修复 pgsql dbfirst 未处理数组类型生成的问题;
            • 修复 dm7 dbfirst SQL 中存在特殊字符的问题;
            • 修复 批量插入的时候报错System.DivideByZeroException #365;
            • 修复 CodeFirst + AsTable + 自动迁移,导致索引名重复的问题 #366;
            • 修复 GroupBy(..).Count() 开启参数化无效的 bug #390; UseGenerateCommandParameterWithLambda
            • 补充 fsql.InsertOrUpdate IfExistsDoNothing 数据存在时不做任何事(不更新);
            • 补充 Ado.ExecuteDataTable Columns 包含 DataType 信息;
            • 补充 EFCore StringLengthAttribute/DatabaseGeneratedAttribute 特性的支持;
            • 补充 FreeSql.Extensions.Linq ThenBy/ThenByDescending 扩展方法 #380;
            • 优化 FreeSql.Generator 生成实体类的时候处理数据库默认值;
            • 调整 FreeSql.Provider.SqlServer 引用Microsoft.Data.SqlClient #391;

            v1.6.0

            • 增加 人大金仓 OdbcKingbaseES 实现;#325
            • 增加 神舟通用 ShenTong 实现;
            • 增加 WhereDynamicFilter 操作符 Range/DateRange/Any/NotAny,实现范围/日期范围/In查询;
            • 增加 ISelect.AsTreeCte() 递归查询树表(向下或向上);
            • 增加 IUnitOfWork Orm 属性直接访问 IFreeSql CRUD 事务与工作单元一致;
            • 增加 SqlExt 常用开窗函数的自定义表达式解析;
            • 增加 SqlExt.Case().When(..).End() 自定义表达式解析;
            • 增加 SqlExt.GroupConcat MySql 函数解析;
            • 增加 StringLength/MaxLength 对 byte[] 的支持;
            • 修复 IFreeSql.InsertOrUpdate Merge into 未处理 CanUpdate 的问题;#330
            • 修复 IUpdate Set(表达式) MapType 未生效的问题;
            • 修复 表达式 Not 位运算符解析错误;#340
            • 修复 Expression Or/And 扩展方法在多表中可能存在的错误;
            • 修复 IncludeMany 只填充子属性中双向关系的 ManyToOne 对象值;
            • 修复 Select`2-10 ToOne/First 没有处理 Limit(1) 的 bug;
            • 修复 [JsonMap] 属性在 lambda 表达式中解析的 bug;
            • 修复 sqlserver 解析 cast(.. as nvarchar) 截断长度 30 的问题;#335
            • 优化 mysql StringLength/MaxLength -2 产生 LongText 映射;
            • 优化 兼容 pgsql 9.4 CodeFirst/DbFirst;
            • 优化 sqlserver 表中带点 codefirst;
            • 测试 支持 mysql json 类型;

            v1.5.0 (好久不见)

            • 修复 non public ctor #291;
            • 修复 浮点类型 NoneParameter 不使用科学字符串表示;
            • 修复 IgnoreColumns 相关方法解析表达式 a => new [] { "Id" .. } 无效的 bug;
            • 修复 Column(ServerTime=xxx) MySql 下无法保留精度的问题;
            • 修复 ISelect.ToDataTable(lambda) 未使用 AsProperty 返回数据;
            • 修复 IUpdate.Set(a => a.xx = null) 表达式解析 bug;#311
            • 修复 Enum 类型无元素时的错误;
            • 增加 IFreeSql.InsertOrUpdate 方法 wiki;
            • 增加 ISelect.WhereDynamicFilter 方法实现动态过滤条件(与前端交互)wiki;
            • 增加 表达式解析 yyyyMMdd 常用 c# 日期格式化;
            • 增加 WhereCascade/GlobalFilter 表达式子查询的支持;
            • 增加 [Description] 元数据注释,优先级低于 c# 代码注释;
            • 增加 IUpdate.SetIf 方法;
            • 增加 IUpdate.SetSourceIgnore 方法,可实现忽略 null 属性的更新;
            • 增加 FreeSqlBuilder.UseExitAutoDisposePool 方法;
            • 优化 Guid GetDefaultValue 可能导致的错误;
            • 优化 移除 fsql.Transaction 线程事务超时提交机制;#323
            • 调整 BaseEntity,移除 BaseTreeEntity、Tenant 租户,改变事务习惯 wiki;

            v1.4.0

            • 增加 FreeSql.Provider.Dameng 基于 DmProvider Ado.net 访问达梦数据库;
            • 增加 FreeSql.DbContext OnModelCreating 虚方法,实现在 DbContext 使用 FluentApi;
            • 增加 FreeSql.DbContext 与 EFCore 相似的 FluentApi 对动态类型的处理;#281
            • 移除 FreeSql.Extensions.EfCoreFluentApi,功能移至 FreeSql.DbContext;
            • 增加 FreeSqlBuilder 自动识别 EFCore 实体特性 Key/Required/NotMapped/Table/Column;
            • 增加 IInsert InsertColumns/IgnoreColumns 方法重载输入 string[];#275
            • 增加 DbFirst 获取字段的默认值信息;
            • 增加 FreeSql.Generator -Match 参数只生成匹配的表;
            • 增加 FreeSql.Extensions.JsonMap FluentApi 扩展方法;#279
            • 增加 DbFirst DbColumnInfo Position 属性,字段默认位置;
            • 增加 UnitOfWorkManager 工作单元管理器,实现多种传播事务,移除 UnitOfWork.Current 静态属性;#289
            • 增加 DbContextOptions.EnableGlobalFilter 设置是否在 DbContext/Repository 中启用全局过滤器(默认 true);
            • 优化 主键 Guid 自动赋值的优先级,低于 Aop.AuditValue 事件(实现自定义 Guid 值);
            • 优化 WhereDynamic 传入 string 的时候自动转为主键的类型值;
            • 修复 ISelect.From 内部 WhereIf 二次表达式解析 bug; po
            • 增加 GroupBy ToDictionary 返回字段的查询方法,TKey 为 GroupBy 选择的对象;
            • 调整 GroupBy 所有方法不使用 DTO 映射规则;
            • 调整 IUpdate.SetDto 也支持 IgnoreColumns 的逻辑;
            • 调整 ISelect linq to sql 和 queryable 实现依赖移至 FreeSql.Extensions.Linq;

            v1.3.5

            • 修复 IncludeMany 第3层无法加载的问题,IncludeMany(a => a.Parent.Parent.Childs);
            • 修复 PostgreSQL CodeFirst/DbFirst 系统表的版本兼容问题;
            • 增加 EfCoreFluentApi HasData 设定 CodeFirst 种子数据;
            • 增加 DbContextOptions.NoneParameter 设置是否使用参数化执行 Insert/Update;

            v1.3.4

            • 调整 Repository 接口定义,合并为一个 IBaseRepository;
            • 调整 移除对 System.ValueType 的依赖,减少版本冲突问题;(目前 FreeSql.dll 无任何依赖)
            • 调整 Oracle StringLength/MaxLength -1 时候映射为 nclob;
            • 调整 IInsert/IUpdate NoneParameter 方法,增加参数 isNotCommandParameter 可设置是否使用参数化;
            • 调整 FreeSqlBuilder,准备移除 UseEntityPropertyNameConvert/UseSyncStructureToLower/UseSyncStructureToUpper 方法;#260;
            • 移除 In多列表达式函数解析 #243;
            • 优化 IncludeMany 扩展方法对 T1 不自动迁移;
            • 优化 BulkCopy 对可空类型的属性处理; #227
            • 优化 IAdo.Query 方法,当传入带主键特性的实体时,防止主键列为 null 时导致整行记录也为 null;
            • 优化 TableInfo 元数据对 interface 实现类 IsVirtual 重写的判断(增加 IsFinal == false);
            • 优化 Navigate 属性未设置 set 时的友好错误提示;
            • 优化 延时属性重写类对 protected set 的支持;
            • 优化 ConnectionPool 提升被动连接断开的体验(会卡的可以升级);
            • 优化 集合导航属性表达式中忘记使用 AsSelect() 的友好错误提示;
            • 增加 FreeSqlBuilder UseNameConvert 方法,类名、属性名都生效;
            • 增加 CodeFirst 实体类注释 -> 表备注,之前只能属性注释 -> 字段备注;
            • 增加 FreeSql.Generator Sqlite 数据库生成实体类;
            • 增加 Sqlite DbFirst 实现;
            • 增加 Oracle clob/nclob 大文本类型读写支持;#259;
            • 增加 ISelect.ToTreeList 扩展方法查询数据,加工为树型 List;(注意:实体需要配置父子导航属性)
            • 增加 ISelect`1 ToDictionary 方法查询返回字典;
            • 增加 Pgsql JToken/JObject/JArray 索引访问的表达式解析;
            • 增加 object.Equals 表达式解析;
            • 增加 ISelect`1 AsQueryable 方法,实现将 ISelect 转换为 IQueryable 类型;
            • 增加 ISelect.RawJoin 方法以便实现 Outer Apply 查询;#200;
            • 增加 IAdo.ConnectionString 属性返回 UseConnectionString 传入的值;
            • 完善 表达式拼接方法,从 T1-T5;#256;
            • 修复 因兼容 #184 导致 MySql Enum 表达式解析为 int 的 bug;
            • 修复 FreeSql.Provider.MySqlConnector Enum 自定义元素值,导致值计算错误的 bug;
            • 修复 SqlServer charindex 表达式函数参数位置的错误;
            • 修复 MySql locate 表达式函数参数位置的错误;
            • 修复 UseGenerateCommandParameterWithLambda(true) 时子语句的参数没整合到主语句;#231;
            • 修复 本地区域化后 ToSql 产生的错误,比如数字可能生成 SQL 为:100,000;
            • 修复 StringLength/MaxLength 对 Oracle varchar2 类型无效的 bug;
            • 修复 CodeFirst IsNullable 迁移脚本重复 NOT NULL 语法错误;
            • 修复 DbFirst Oracle/Dameng 序列值使用复杂的问题,结合 [Column(InsertValueSql = "xxx.nextval")];

            v1.2.1

            • 调整 Aop 改为 event 事件;
            • 调整 Ado.AopCommandExecuting/AopCommandExecuted 到 Aop.CommandBefore/After;
            • 增加 Aop.TraceBefore/After 事件;
            • 修复 ToList 父子导航可能匹配不正确的 bug;
            • 修复 读写分离创建 IFreeSql 时如果从库不可用导致 iis 退出的 bug;
            • 调整 DbContext/Repository EnableAddOrUpdateNavigateList 默认关闭;
            • 修复 DbContext/Repository SaveMany 一对多保存时删除条件 bug;
            • 增加 BaseEntity SaveMany 方法;
            • 修复 LazyLoading 依赖项目 CSScript.Core 升级的 bug;

            v1.2.0

            • 修复 ToList(a => new Dto {}) 这种情况按字段名匹配问题,应该按属性名;#208
            • 增加 nuget 包强签名发布;#201
            • 完善 IUpdate.SetSource 组合主键的数据更新单元测试;
            • 修复 Oracle 导航属性 表别名过长的问题;
            • 修复 DbSet.Where 表达式解析报错的问题;#216
            • 修复 DbContext/Repository Update 不更新 DbUpdateValue 的问题;#219
            • 增加 IUpdate.SetDto 根据 dto 更新的方法;#218
            • 修复 EfFluentApi 一个参数类型问题;

            v1.1.0

            • 修复 BaseRepository.UnitOfWork 延迟设置(即事务开启之后再设置)无效的 bug;
            • 优化 参考 Chloe 表达式针对变量的解析,提升了一倍性能;
            • 修复 FreeSql.Generator 外键导航属性大写小 bug;#177
            • 优化 IsVersion 字段更新 version=ifnull(version,0)+1,防止字段为 null 一直报错;
            • 完善 [Column(ServerTime = Utc)] 特性,对 Update 时也能生效;
            • 完善 [Column(MapType = typeof(byte[]))] 对 Guid/string 的映射支持;#178
            • 完善 MapType byte[] 对 Contains/Parse 表达式解析的处理;
            • 修复 DbConnectionPool.Return 在 Sqlite 下的 bug;#179
            • 增加 FreeSql.Provider.MySqlConnector 扩展方法 ExecuteMySqlBulkCopy;
            • 修复 DbFirst mysql/pgsql/sqlserver 获取主键失败的 bug; 0.10.7 发布后的 bug #182
            • 解决 表名名称包含点,无法进行 CRUD 的问题,由于测试的复杂性,此类情况仅支持 MySql/Sqlite CodeFirst 自动迁移;

            注意:尽量不要使用带点的表名,只有 MySql/Sqlite 对此类表名支持 CodeFirst。但是它不影响 CRUD 功能,使用 [Table(Name = "`sys.config`")] 解决

            • 增加 FreeSql.All 全家桶包,懒人专用;
            • 修复 GroupBy 类型转换错误;#186
            • 修复 .ToList(a => new DTO(a.id)) 报 未将对象引用设置到对象的实例 问题; #187
            • 修复 update语句,二元运算解析出错; #184
            • 修复 xamarin ios 真机无法使用 Sqlite 的问题; #183
            • 支持 Sqlite :memory: 模式; #191
            • 优化 IdleTimeout 默认值为 20 秒; #194
            • 修复 父子关系导航属性 Dto 中直接使用 a.Parent 映射错误的 bug;

            v1.0.1

            • 修复 NoneParameter 无参对 byte[] 二进制拼接的 bug;#170
            • 调整 最大连接池为 +5(属于内部设置);
            • 增加 EfCoreFluentApi 扩展包,接近 efcore fluentApi 的使用习惯;
            • 增加 ColumnAttribute 属性 InsertValueSql,插入数据的时候指定用 sql 值;
            • 增加 ISelect`1.WithSql("select * from user ...") 功能;
            • 完善 PgSql OnConflictDoUpdate 功能增加 DO NOTHING 操作;#174
            • 修复 IAdo.Query 字段名重复的 bug;#162

              v1.0.0

              • 增加 ISelect.ToSql 字段别名设置,默认为 AsIndex,可改为 AsProperty;#158
              • 优化 AsTable 分表查询 Any/Min/Max/Avg/Sum/Count 的处理;#158
              • 优化 BaseEntity Select 查询数据时自动 Attach;
              • 优化 没有主键的实体,约定 id 命名的属性上若设置了 IsPrimary = false,则其不属于约定主键;
              • 优化 ISelect.Count() 之前使用了 OrderBy 会产生的 SQL 语法问题;
              • 调整 Avg 方法返回值为 double,Sum 方法返回值为 decimal;
              • 完善 Select`2-10 多表查询对象,增加 First(select)/ToOne(select)/First 方法;
              • 修复 LazyLoading 在 Net4 环境下的问题;
              • 增加 FreeSql.Generator -Filter 设置选项,可阻止存储过程+视图的生成;
              • 增加 FreeSql.Generator 在目标目录产生 __razor.cshtml.txt 文件,以便自定义修改模板生成;
              • 增加 IInsert/IUpdate BatchOptions 方法指定批量插入的设置;
              • 增加 IInsert.ToDataTable 方法,为 BulkCopy 操作提供数据,该方法处理了(表名、字段名、类型)映射和忽略列;
              • 增加 IInsert.ExecuteSqlBulkCopy 扩展方法执行 SqlBulkCopy 批量插入,在 FreeSql.Provider.SqlServer 可用;
              • 增加 IInsert.ExecutePgCopy 扩展方法执行 PostgreSQL Copy 批量导入,在 FreeSql.Provider.PostgreSQL 可用;
              • 增加 ISelectGrouping 分组查询总量的方法 .Count();
              • 兼容 Vb.Net 无法使用 IncludeMany 的问题;
              • 兼容 Vb.Net 无法使用 int? 类型 = 等号表达式解析;
              • 优化 实体基类的属性位置,优先排在最前面;
              • 整理 实体类 Ctor 有构造函数的映射处理;wiki
              • 优化 实体属性,支持 protected set 属性;
              • 修复 Ado.Query 查询字段重复时报错;#162
              • 增加 FreeSql.Provider.MsAccess 支持 Access 数据库操作,已通过 2003/2007 版本测试;

              v0.12.21

              • 增加 Where In 表达式解析;wiki
              • 增加 FreeSqlBuilder.UseConnectionFactory 自定义数据库连接对象的创建方法;
              • 兼容 Vb.Net 表达式解析字符串 = 判断;
              • 优化 GlobalFilter 过滤器表达式 bool 解析;
              • 修复 ISelect.AsTable union all 查询对 count/max/min/avg/sum 的别名 bug;

              v0.12.20

              • 增加 ISelect.ForUpdate 排他更新锁(根据数据库类型的规则,见代码注释);
              • 完善 SqlServer WithLock 功能,组合多种使用 | 枚举相联;
              • 补充 同线程时间 fsql.Transaction 事务等级参数的传入;
              • 调整 fsql.Transaction(Action, Timeout) 参数顺序;
              • 修复 FreeSql.Generator NameOptions 参数未设置时的错误;

              v0.12.18

              • 修复 Oracle Dbfirst 字段可空、和主键判断的 bug;

              v0.12.16(达梦数据库)

              • 增加 达梦数据库 ODBC 适配,和单元测试,支持 CodeFirst 模式开发;
              • 增加 BaseEntity 物理删除方法 Delete(true);
              • 修复 ToList((a,b) => new { a, b }) 当 b 为 null 的时候,应该整个 b 为 null;(导航属性没这个问题)
              • 修复 Sqlite attachs 附加数据库别名 bug;
              • 修复 Select AsTable 析构函数处理可能产生 bug;
              • 整理 读写分离的查询代码;

              v0.12.12

              • 修复 DbContext TrackList 对匿名对象处理的 bug;#150

              v0.12.11

              • 增加 RawValueAttribute 实现自定义表达式时,使用原始值传入参数;
              • 增加 IEnumerable<(T1, T2)>.Contains(col1, col2) 扩展方法,实现自定义表达式解析多列无法 IN 的问题;
              • 修复 多表查询 WhereCascade,如果 Join 没有 On 条件,可能导致生成的 SQL 多了一个 AND 出错;
              • 修复 SaveMany 缓存保存列名找不到的错误提示;

              v0.12.9

              • 增加 DateTime 扩展方法 Between 和 BetweenEnd 自定义表达式;
              • 修复 Dto 映射,在二级即 Dto 属性上又 new Dto 的时候,错误的又重复映射了全部字段;

              v0.12.8

              • 优化 IncludeMany 级联查询支持异步适配(之前是同步方式);
              • 优化 MaxLength 功能,并且增加 [Column(StringLength = 100)] 同等的特性功能;
              • 优化 GlobalFilter Apply 自动重命名表达式参数名,避免内容重复问题;
              • 修复 表达式解析 Guid.NewGuid() 的错误;
              • 补充 GetTableByEntity 当属性名或特性名重复时的友好错误提示;

              v0.12.7

              • 移除 Lazy 延时加载动态代码中的 Newtonsoft.Json 依赖;

              v0.12.6

              • 优化 ReadAnonymous 映射类型不一致的容错;
              • 修复 Oracle/Sqlite IInsert.ExecuteInserted 方法,返回了被 clear 过后的 _source,其实本来也没意义;
              • 修复 DbContext SaveMany 对比删除的 bug;

              v0.12.5

              • 增加 实体特性 [Column(ServerTime = DateTimeKind.Utc)] 使用数据库时间执行插入数据;wiki
              • 修复 ToList(a => new Dto { .. }) 在使用 GroupBy 之后报错的 bug;
              • 修复 注释迁移到数据库,在 asp.net 4.7 无效的问题;
              • 修复 批量插入 Values 数量限制超出的判断;

              v0.12.3

              • 增加 ICodeFirst.IsGenerateCommandParameterWithLambda 选项,开启表达式解析的命令参数化;wiki

              FreeSqlBuilder 上使用 UseGenerateCommandParameterWithLambda(true) 开启

              • 优化 ExpressionCallContext 可设置、附加参数化对象;
              • 修复 IncludeMany(a => a.x1.x2.Childs) 当 x1, x2 为 null 的报 null 错误;

              v0.11.24

              • 增加 Repository/DbContext SaveMany 方法实现一对多,子数据的完整保存;
              • 调整 SaveManyToMany 方法名为 SaveMany;
              • 增加 UnitOfWork 静态属性 DebugBeingUsed,用于生产环境监视正在使用中的事务;

              v0.11.23

              • 增加 ExpressionCallAttribute 特性,实现表达式函数自定义解析;wiki
              • 优化 Contains 表达式解析为 where in 自动拆分,防止大于 1000 的 SQL 错误,如下:
              var arr = Enumerable.Range(1, 1333).ToArray();
              var sql = fsql.Select<T>().Where(a => arr.Contains(a.Int)).ToList();
              //原来:where id in (1..1333)
              //现在:where id in (1..500) or id in (501..1000) or id in (1001..1333)
              • 修复 IsNulable 特性不生效的 bug;

              v0.11.22

              • 兼容 SqlServer nvarchar/varchar 表达式解析,分别解析为:N'' 和 '',优化索引执行计划;
              • 增加 MySql 特有功能 Insert Ignore Into;wiki

              v0.11.21

              • 修复 SqlServer DbFirst、CodeFirst 查询实体表的列信息错误,当设置了表/列多个扩展属性时发生;
              • 修复 SqlServer2005 CodeFirst 迁移时,不支持 SET (LOCK_ESCALATION TABLE) 的错误(已做适配);
              • 修复 SqlServer2005 批量插入SQL语法错误,不支持 Values(),()(已做适配);
              • 完善 SqlServer2005 环境跑通了所有单元测试;
              • 修复 ReadAnonymous 读取数据设置只读属性的错误;#132

              v0.11.20

              • 增加 IncludeMany 贪婪加载的时候可指定子表的字段,避免查询子表所有字段;
              • 调整 ToList(a => new 实体类 { id = 1, title = a.xx.Title}),如果 dto 类型为实体类,则规则为只查询 id, title 字段;

              这个规则与 v0.11.6 有差异,它是先映射 Dto 所有属性,再映射 id、title,区别:一个是 dto 类型,一个是查询的实体类型

              • 修复 Where(a => bool && id > 0) bool 未解析正确的 bug;

              (之前大多数类似的表达都能解析,这次是一个特殊情况)

              v0.11.19

              • 修复 MapType 属性的表达式解析 数组.Contains 得到是映射之前的值 bug;
              • 修复 MapType 属性 与 IncludeMany 变异功能未映射处理的 bug;

              v0.11.18

              • 增加 DbContext、Repository SaveManyToMany 方法,实现手工保存 ManyToMany 关联数据;wiki
              • 修复 BaseRepository 析构时与工作单元的回滚逻辑 bug;#131
              • 优化 ManyToMany 中间表不需要指明 [Column(IsPrimary = true)] 特性;

              v0.11.12

              • 增加 AsTable 和 Repository 分表时的自动迁移分表功能;
              • 增加 ICodeFirst.SyncStructure(Type entityType, string tableName) 指定表名来迁移实体;
              fsql.CodeFirst.SyncStructure(typeof(Log), "Log_1"); //迁移到 Log_1 表
              fsql.CodeFirst.SyncStructure(typeof(Log), "Log_2"); //迁移到 Log_2 表
              • 增加 PostgreSQL 特有功能 On Conflict Do Update 功能,wiki;
              • 完善 所有参数化 object parms 可使用 IDictionary 类型传入;

              v0.11.11

              • 增加 MySql 特有功能 On Duplicate Key Update 功能,wiki;
              • 优化 实体类重写属性 new 如果类型与基类不一致,无法使用的问题;
              • 修复 ISelect .From 方法之前使用 .Include 方法,导致生成的多表 JOIN 位置错误的 bug;

              v0.11.9

              • 增加 FreeSql.Provider.Sqlite 对 Xamarin 环境下的适配;
              • 增加 SqlServer ISelect.WithLock 扩展方法,实现 with(nolock) 查询;
              • 增加 SqlServer IFreeSql.SetGlobalSelectWithLock 扩展方法,实现全局设置 with(nolock) 查询;
              • 修复 MySql CodeFirst DateTime 同步结构条件判断的 bug,导致每次都执行 alter;

              高版本支持 datetime(3) 精度的、或者不指定 DbType="datetime" 就没事

              • 移除 Aop.ToList;
              • 移除 Aop.Where;

              v0.11.6

              • 调整 ToList(a => new Dto { id = 1, title = a.xx.Title}),之前只映射 id、title,现在是先映射 Dto 所有属性,再映射 id、title;

              提醒:如果之前使用此方法映射 Dto 的指定属性,请改为匿名类映射,避免查询了不需要的字段影响性能。

              v0.11.5

              • 修复 FreeSql.DbContext 析构方法的 bug,错误的回滚了外部 UnitOfWork;

              v0.11.4

              • 增加 ISelect ToDelete/ToUpdate 方法,实现更复杂的删除/更新操作,wiki;
              • 移除 IUpdate/IDelete WhereExists 方法;

              v0.11.3

              • 增加 FreeSql.DbContext DbSet Remove 可根据 lambda 条件删除数据的方法;
              • 优化 Aop.AuditValue 审计过的值,IUpdate.UpdateColumns 即使不指定该列也会更新;

              v0.11.2

              • 增加 IFreeSql.GlobalFilter 全局过滤器,wiki;
              • 移除 TableAttribute.SelectFilter 功能;
              • 修复 MySql/SqlServer CodeFirst 同步结构 bug;

              当表已存在后增加自增列时,产生的脚本不应该包含默认认设置

              v0.11.1

              • 优化 FreeSql.DbContext 构造方法,方便注入使用;

              v0.10.15 (.Net Framework 4.0)

              • 增加 .Net Framework 4.0 的支持,出于环境考虑 .Net Framework 4.0 不支持异步方法;
              • 增加 IFreeSql.Insert(IEnumerable source) 方法;

              v0.10.14

              • 调整 DbContext.EntityChangeInfo 类名为 DbContext.EntityChangeReport.ChangeInfo;
              • 调整 IUnitOfWork 接口,移除 OnEntityChange 属性,增加 EntityChangeReport 属性;
              • 优化 FreeSqlBuilder 处理 MaxLength 特性的容器处理;

              v0.10.13

              • 修复 postgresql 12 移除 pg_attrdef.adsrc 列,导致 CodeFirst 方法失败的 bug;
              • 增加 Aop.ConfigEntity 属性 ModifyIndexResult 实现 IndexAttribute 的设置;

              v0.10.12

              • 增加 FreeSql.DbContext 实体对象的变化事件;

              文档:DbContext#%E5%AE%9E%E4%BD%93%E5%8F%98%E5%8C%96%E4%BA%8B%E4%BB%B6

              • 补充 Aop.CurdBefore 事件参数 Table 实体类型的元数据;

              v0.10.11

              • 优化 枚举属性的默认值容错,枚举下标不存在 0 的时候,mysql 迁移结构默认值报错;
              • 优化 ORACLE Command 绑定变量 BindByName = true;#107

              v0.10.10

              • 修复 PostgreSQL DbFirst 获取字段类型的时候,没有拼得字符串的长度(如 varchar(255));

              v0.10.9

              • 修复 DbFirst 当表数量过大时(如 oracle 表数量大于 1000),可能报错的 bug;

              v0.10.8

              • 增加 List 扩展方法 IncludeMany,实现从已知的内存 List 数据,进行和 ISelect.IncludeMany 相同功能的贪婪加载;

              示例:new List(new[] { song1, song2, song3 }).IncludeMany(fsql, a => a.Tags);

              文档:%e8%b4%aa%e5%a9%aa%e5%8a%a0%e8%bd%bd#%E5%AF%BC%E8%88%AA%E5%B1%9E%E6%80%A7-onetomanymanytomany

              • 修复 FreeSql.DbContext/FreeSql.Repository 当主键为 Guid? 可空类型时,发生参数错误;

              System.ArgumentException:“Expression of type 'System.Guid' cannot be used for assignment to type 'System.Nullable`1[System.Guid]'”

              v0.10.7

              • 增加 IndexAttribute 特性,自动迁移索引,以及对应的 FluentApi 方法;
              • 移除 ColumnAttribute.Unique 属性设置,改为 IndexAttribute 特性设置唯一键;
              • 调整 IInsert Insert(IEnumerable source) 参数类型改成了 List;

              v0.10.6

              • 优化 DbContext/Repository ManyToMany联级保存功能,当是新增数据时不查询中间表记录对比差异(直接插入);

              v0.10.5

              • 增加 DbContext/Repository ManyToMany联级保存功能(之前已支持OneToMany);

              wiki: %e8%81%94%e7%ba%a7%e4%bf%9d%e5%ad%98

              v0.10.4

              • 增加 ColumnAttribute 可插入(CanInsert)、可更新(CanUpdate);#99

              v0.10.3

              • 增加 NavigateAttribute 特性对应的 Fluent 功能;#96

              v0.10.2

              • 修复 Pgsql string[] 属性表达式 Contains 缺少类型转换的 SQL 语法错误;

              v0.10.1

              • 优化 IUpdate.IgnoreColumns/UpdateColumns 可对属性名,或字段名做设置;#95
              • 优化 忽略 List 作为 Curd 类型操作;

              v0.9.18

              • 增加 PostgreSQL 的 Odbc 访问提供,相比 FreeSql.Provider.PostgreSQL 支持的类型更少;
              • 增加 通用的 Odbc 访问提供,不能迁移实体到数据库,不能 Skip 这样来分页,理论上能 crud 所有 odbc 数据库;

              v0.9.17(ODBC)

              • 增加 FreeSql.Provider.Odbc,实现 Oracle/SqlServer/MySql 的 Odbc 访问提供;
              • 增加 FreeSqlBuilder.UseConnectionString 参数 providerType,可解决因包版本冲突时,可能无法反射获得 FreeSql.Provider 对应的类型,通常这个参数不需要设置;
              • 优化 MaxLength 特性,当指定为 -1 时 DbType 会分别映射类型 text/nvarchar(max)/nvarchar2(4000);

              v0.9.16

              • 增加 BaseRepository.AttachOnlyPrimary 方法,只附加实体的主键值;

              在更新前使用可实现不查询数据库再更新、也可以实现更新时不更新值为 null 的字段

              class T {
                  public int id { get; set; }
                  public string name { get; set; }
                  public string other { get; set; }
              }
              var item = new T { id = 1, name = "xx" };
              fsql.GetRepository<T>().AttachOnlyPrimary(item).Update(item); //只更新 name
              • 修复 Lambda 表达式中 DateTime.Now.ToString("yyyyMMdd") 不能直接执行的 bug;

              v0.9.15

              • 增加 FreeSql.Extensions.JsonMap 扩展包,实现快速将对象映射为json字符串的方法;
              fsql.UseJsonMap(); //开启功能
              
              class TestConfig {
                  public int clicks { get; set; }
                  public string title { get; set; }
              }
              [Table(Name = "sysconfig")]
              public class S_SysConfig<T> {
                  [Column(IsPrimary = true)]
                  public string Name { get; set; }
              
                  [JsonMap]
                  public T Config { get; set; }
              }
              • 优化 表达式解析未实现的错误提醒,如 $"";

              v0.9.12

              • 增加 MaxLength 特性的解析,实体字符串长度设置;
              class Topic {
                  [MaxLength(128)]
                  public string Title { get; set; }
              }

              v0.9.11

              • 增加 ISelect.ToChunk 实现分块查询数据,减少数据过大时内存占用;

              v0.9.10

              • 移除 FreeSql.Repository 扩展方法 FromRepository;
              • 调整 ISelect.AsTable 规则,每一次使用将增加 UNION ALL 查询;
              • 优化 AsTable UseSyncStructureToLower/ToUpper 设置,兼容 AsTable((t,o) => "(select * from tb)");

              v0.9.9

              • 修复 AsTable 不受 UseSyncStructureToLower/ToUpper 设置的 bug;

              v0.9.8

              • 增加 AsTable 多次,可查询分表后的多个子表记录,以 UNION ALL 形式执行;
              • 完善 ExpressionTree DateTime/DateTimeOffset 数据转换测试;
              • 优化 ISelect`1.Include之后ToList参数includeNestedMembers默认为true;
              • 修复 属性无set自动忽略的bug;

              v0.9.7

              • 修复 批量更新 bug,当某行某字段值为null,其他行的该字段也更新成了null;【重大 bug】

              v0.9.6

              • 优化 表达式对整数除法的处理,解析为整除;
              • 优化 MapType DateTime/DateTimeOffset 类型转换互通;

              v0.9.5

              • 增加 创建表时指定字段位置,如:[Column(Position = 1],可为负数即反方向位置;

              v0.9.4

              • 修复 导航属性配置,循环关系的情况下可能导致的 bug;

              v0.9.3

              • 修复 导航属性配置和Aop冲突的 bug;

              v0.9.2

              • 修复 Aop.AuditValue 与 FreeSql.Repository 主键状态管理的冲突;

              v0.9.1

              • 增加 ISelect.First() 方法;
              • 修复 MapType 表达式解析时的层级 bug,可能出现 ExpressionTree 类型错误;

              v0.8.11

              • 增加 Aop.AuditValue 事件,在插入/更新数据时审计属性值,wiki;

              v0.8.10

              • 修复 Pgsql 批量更新使用 NoneParameter 后日期类型的语法 bug;
              • 修复 Oracle DbFirst 大小写问题没正确获取列对应 CsType 值的 bug;

              v0.8.8

              • 优化 导航属性的关系,友好支持 int/int? 映射;
              • 修复 IncludeMany 变异 Where 指定的属性类型不一致的 bug;(如 int 和 int?)

              v0.8.7

              • 修复 导航关系多属性时的错序 bug;
              • 修复 延时属性的类,没有设置Namespace时的 bug;

              v0.8.6

              • 补充 使用 IsIgnore 忽略后,表达式再使用时的友好错误提示;
              • 优化 DbContext/Repository 局部调整;
              • 修复 DbContext.Save 只查询不更新的bug;

              v0.8.5

              • 修复 ISelect.WhereCascade 当内部使用 (a as BaseEntity).TenantId 时报错的 bug;
              • 修复 ISelect Sum/First 子查询时,若子查询实体类与主查询一样时,导致的 bug;

              v0.8.4

              • 修复 IUpdate.Set 表达式传入匿名类更新多个字段,后表达式未加[]或""的 bug;
              • 修复 Aop.ConfigEntityProperty 操作导航属性后,执行 insert 语句认为它也是字段的 bug;

              v0.8.3

              • 增加 FreeSql.Provider.Oracle 下的 OraclePrimaryKeyName 特性,手工设置主键名防止默认名过长问题;
              • 修复 查询重复数据时使用 IncludeMany 出现字典重复添加的 bug;(如一对多使用LeftJoin查询,主实体查询出了重复的数据)
              • 补充 ISelect`T1...T10 LeftJoin/InnerJoin/RightJoin 多参数方法;

              v0.8.2

              • 修复 Oracle 表达式 DateTime.Subtract(DateTime) 解析 bug;
              • 增加 IFreeSql.Select`T1...T10 的多表查询扩展方法;
              • 增加 表达式函数 string.IsNullOrWhiteSpace 解析;
              • 优化 内部实体管理的默认值,防止导航属性使用抽象类/接口时出现错误;

              v0.8.1

              • 优化 表达式中不能使用 c# 函数的问题,

              如:where(a => HttpContext.Session.GetString("UserID") == a.UserId)

              • 优化 IUpdate.Set 表达式传入匿名类更新多个字段;
              • 优化 IInsert.InsertIdentity 可插入自增属性;
              • 修复 Oracle CodeFirst 使用 OldName 迁移自增字段时,未删除旧的触发器和序列的 bug;

              v0.7.16

              • 增加 UnitOfWork.Current 静态属性,AsyncLocal 实现 [NETStandard 2.0];
              • 修复 CodeFirst 迁移代码注释到数据库,继承的基类未生效的 bug;

              v0.7.15

              • 优化 ExpressionTree 类型转换的友好错误提示;
              • 修复 SqlServer IUpdate.ExecuteUpdated 拼接SQL bug;

              v0.7.13

              • 增加 ISelect.WhereCascade 实现多表查询时,向每个表中附加条件; wiki;
              • 增加 表达式对基类转换的解析,如:Where(a => (a as BaseEntity).IsDeleted == true);
              • 增加 Examples 项目 base_entity,利用 BaseEntity 实现简洁的数据库操作;

              v0.7.12

              • 修复 .From 多表查询别名的匹配 bug;
              • 修复 SqlServer 未处理字符串前面加N 的 bug;
              • 增加 子查询判断,如果使用了相同 ISelect 会死循环;
              • 增加 连接字符串错误时的友好提示;

              v0.7.9

              • 补充 Navigate(ManyToMany = typeof(中间表)) 多对多自定义配置;
              • 修复 LambadaExpressionExtensions 扩展方法 And/Or 当存在二级 lambada 时替换错误的 bug;

              如:where.Add(a => a.Tags.Any(b => ...)),b 替换错误

              v0.7.8

              • 增加 子查询函数 First、Count、Min、Max、Sum、Avg 的支持 #wiki;
              • 补充 Oracle DbFirst raw 等类型映射处理,其他未处理的类型将映射为 string;

              v0.7.6

              • 优化 表达式 true && ... 解析的处理;
              • 优化 Navigate 指定联合键关系时,对属性顺序的要求,当类型不一样、名称一样时无须指明属性的顺序,如:[Navigate("MemberId, ShopId")];

              v0.7.5

              • 修复 Insert/Update 大批量操作分批执行时,如果外部使用了 Ado.Transaction,没有使用线程事务对象,而是创建了新事务的 bug;

              v0.7.4

              • 修复 Insert ClearData 重复利用的 bug(使用 IgnoreColumns 进行大批量插入时会发生);

              v0.7.3

              • 修复 ISelect.From 当传入相同的两个实体类型,可能导致内部 Join 无法匹配的 bug;
              • 增加 IGroupSelect ToSql(string) 重载方法;
              • 修复 根据代码注释,迁移到数据库备注,当实体类属于 .exe 程序集时的 bug:System.Xml.XmlException:“根级别上的数据无效。 第 1 行,位置 1。”

              v0.7.1

              • 修复 .From.GroupBy Item2 以上元组参数未查找到的 bug #63;
              • 合并 FreeSql.DbContext 项目至 FreeSql;

              v0.6.13

              • 增加 表达式 .HasValue 和 !.HasValue 的解析支持;
              • 增加 表达式 DateTime - DateTime 和 DateTime - TimeSpan 的解析支持;
              • 修复 0.6.12 IUpdate.Set 表达式解析的 bug;

              v0.6.12

              • 增加 LambdaExpression 扩展方法 And/Or/Not 快速拼接表达式;
              • 优化 IUpdate.Set 支持 Set(a => new { Clicks = a.Clicks + 1, Time = DateTime.Now }) 指定多个字段更新的用法;

              v0.6.11

              • 增加 CodeFirst 根据代码注释,迁移到数据库备注(需要实体类所在项目开启xml生成功能);

              v0.6.10

              • 增加 TableAttribute 特性属性 DisableSyncStructure,当实体对应的是视图时,可使用本功能禁用迁移;
              • 增加 FreeSqlBuilder UseEntityPropertyNameConvert() 全局转换实体属性名方法 #60;

              v0.6.9

              • 修复 批量插入/更新大量数据时,未使用NoneParameter,会导致部分未执行的bug;

              v0.6.8

              • 处理 非正常 Provider GC 可能为 null 的错误;
              • 修复 Aop.ParseExpression 使用 FreeParse 方法死循环的 bug;
              • 增加 ISelect.OrderBy 重载,与 WhereIf 相同行为;

              v0.6.6

              • 适配 FreeSql.Provider.MySqlConnector,和它对应的266个单元测试;

              v0.6.5

              • 增加 NavigateAttribute 配置导航关系;
              • 修复 LinqToSql 方法,开启自动迁移时,迁移了无关类的 bug;
              • 修复 Oracle DbFirst date(7) 类型未处理的 bug;
              • 修复 AsSelect().Any() 未给其他条件时,产生 null bug;
              • 修复 子查询使用非表达式方法时,参数无效的 bug;
              • 增加 FreeSql.Extensions.LazyLoading 对 .net 4.5 的支持;
              • 优化 MySql CodeFirst 增加 DateTime 迁移后,默认值为 0000-00-00 导致读取失败的 bug;
              • 优化 LazyLoading 友好错误提示;

              v0.6.3

              • 补充 当初始化 ConnectionString 参数为空时,给出友好错误提示;
              • 修复 IUpdate.IngoreColumns/UpdateColumns 若实体指定别名后,可能无效的bug;

              v0.6.2

              • 增加 FreeSql.Provider.MySqlConnector 实现包;
              • 修复 mysql CodeFirst enum/set 小写时,对 MySqlConnector 不友好的 bug;

              v0.6.1(拆解 FreeSql)

              • 各数据库单独包、延时加载包;
              • FreeSql.Extensions.LazyLoading
              • FreeSql.Provider.MySql
              • FreeSql.Provider.PostgreSQL
              • FreeSql.Provider.SqlServer
              • FreeSql.Provider.Sqlite
              • FreeSql.Provider.Oracle
              • 移除 IFreeSql.Cache,以及 ISelect.Caching 方法;
              • 移除 IFreeSql.Log,包括内部原有的日志输出,改为 Trace.WriteLine;
              • IAdo.Query 读取返回变为 List>;
              • 定义 IFreeSql 和以前一样,移除了 UseCache、UseLogger 方法;

              v0.5.23

              • 补充 IUpdate.Set(a => a.Click == 10),简化 Set 更新单个字段表达式;
              • 优化 延时导航属性的错误提醒,当无法匹配错误,转到重写类 get 时抛出(实现延时导航属性,与普通导航一起使用);
              • 优化 ICodeFirst.SyncStructure 错误提示,当使用不可迁移实体时;
              • 优化 实体数据属性 DbDefaultValue 处理;
              • 修复 Expression 表达式解析 Convert 的判断 bug;

              v0.5.21

              • 修复 IncludeMany ManyToMany,若中间表未使用 延时加载 属性功能时,出现的 bug;
              • 增加 IncludeMany Take(5) 功能,实现每个子集合只取5条记录;

              v0.5.19

              • 增加 ISelect.Include 贪婪加载第一版,已通过集合的导航数据加载,包括 OneToMany/ManyToMany;
              • 修改 IncludeMany ManyToMany ET 缓存的 bug;
              • 完善 IncludeMany 联合键处理;
              • 完善 Include/IncludeMany 单元测试;
              • 修复 Include 延时加载 ManyToOne/OneToOne,当值为 null 时,仍然会查询一次数据;
              • 修改 Query/ToList 混合使用时,可能导致的 ET 缓存 bug;
              • 修改 Query 查询的实体设置了 IsIgnore 时,可能出现 ET 读取位置偏移 bug;
              • 增加 变异的 IncludeMany,即使不是导航属性,也可以贪婪加载,Wiki;

              v0.5.12

              • 优化 连接预热策略:min pool size 不设置或 <= 0,则默认预热 5个;也可以设置 1;
              • 取消 MySql CodeFirst 对表字符集的设置;
              • 增加 ToList() 方法,作用与 ToList(a => new Dto()) 相同;

              v0.5.11

              • 修复 复杂的表达式解析 OR 的括号 bug;
              • 增加 linq to sql 的查询语法,以及单元测试,wiki;
              • 补充 IFreeSql 增加与实现 IDisposable 接口(依然要保持单例的使用习惯);
              • 增加 CurdBefore、CurdAfter AOP 事件,可监控执行增删查改;
              • 增加 SyncStructureBefore、SyncStructureAfter AOP 事件,可监控CodeFirst迁移;

              v0.5.7

              • 补充 nuget 包增加 xmlDoc 编译,原来使用者之前一直没有注释;
              • 调整 Column.Unique 定义规则,解决同一属性不可配置多次的问题;
              • 优化 兼容不同数据库 bool 的表达式解析,如:Where(a => a.Bool)、Where(a => !a.Bool);

              v0.5.5

              • 增加 Column.MapType 类型映射,可将 enum 映射为 int/string 等;
              • 增加 Column.Unique 唯一键,多个属性指定相同的标识,代表联合键,#42;
              • 增加 Expression string.Concat,#39;
              • 补充 Expression IEnumerable.Contains 的支持,之前只能数组或IList;
              • 补充 IDbFirst GetTablesByDatabase 返回 uk/fk/index 名称,以便迁移;
              • 补充 MapType/Unique 单元测试;
              • 优化 PostgreSQL jsonb 类型使用习惯;

              v0.5.4(青年版)

              • 修复 Expression OrElse 两侧括号丢失的 bug;
              • 修复 Expression DateTime 类型 CompareTo 在 MySql/SqlServer 下的 bug;
              • 修复 ISelect.ToList(true) 无效的 bug;
              • 增加 IAop.ConfigEntity 配置实体特性,可实现使用其他 ORM 的实体特性,#36;
              • 优化 ISelect.GroupBy 查询,增加 .Value 实现聚合源字段查询,ToList(a => a.Sum(a.Value.Score)),#38;

              v0.5.3

              • 增加 ISelect.ToList(true) 贪婪加载 LeftJoin/InnerJoin/RightJoin 导航数据;
              • 增加 IAdo.Query 多结果集查询;
              • 增加 IAdo.ExecuteDataSet 多结果集查询;
              • 优化 未设置实体属性 set 的将被自动过滤 IsIgnore;

              v0.5.2

              • 修复 SqlServer 工作单元 bug,需要同时设置 SqlCommand.Connection + Transaction;
              • 补充 测试与支持联合主键的自增;

              v0.5.1(五一版)