Releases: dotnetcore/FreeSql
Releases · dotnetcore/FreeSql
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.xxx 重要更新内容
- 增加 PgArrayToMany 专属导航属性;
- 增加 DTO 映射非导航属性的子表查询 ToList,可直接返回集合;
- 增加 InsertDict/UpdateDict/DeleteDict/InsertOrUpdateDict 针对字典的 CUD 方法;
- 增加 [Table(AsTable = xx)] 自动分表特性,待完善;
- 增加 DbSet/Repository DeleteCascadeByDatabase 级联删除(基于数据库);
- 调整 pgsql10 自增映射使用 GENERATED BY DEFAULT AS IDENTITY,低版本仍然使用 serial;
- 优化 导航集合属性访问,可省略 AsSelect;
更新了文档:联合查询、嵌套查询、工作单元事务、多库访问、多租户、分布式事务、动态操作
https://freesql.net/guide/
大家有空可以重新翻看一下文档,帮助提升工作效率。
文档有些细节,可能需要反复多看几次才能熟练运用。
如果可以,建议把特别关注的内容搬运到自己的博客空间,当做笔记。
3.2 大版本经历 6个月 迭代,正式发布 v3.2.666,这是一个长期稳定的版本,会持续一年时间只修 bug 不加新功能。
和 2.6.100 版本一样。
2.0 以上的版本,可以直接升级,没有破坏性变化。
感谢群管理员、热心群友给新人耐心解答!
感谢天上有木月大佬管理 freesql.net 官方文档!
感觉所有群友的信任,希望大家使用 FreeSql 共同创造价值,迎娶美好的老婆!
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
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
- 修复 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
关于映射优先级,Attribute > FluentApi > Aop,以前是觉得 Attribute 更直观,万一程序员不知道谁在哪里 fluentapi 设置了 TableName,也不至于查不到原因,跑来群里质问。
又会有新的问题,举例,如果设置了 Table(Name = xxx
再使用 fsql.Aop.ConfigEntity 修改表名映射就无效了
现在可以通过 UseMappingPriority(Aop, FluentApi, Attribute) 来更改优先级,解决上述问题
v3.2.651
- 增加 DTO 映射非导航属性的子表查询 ToList,可直接返回集合;
- 增加 Array.Any(x => x.id == a.Id && ..) 表达式树解析;#243
- 增加 pgsql numeric -> BigInteger 映射;#1100
- 增加 1108 Exception 国际化;
- 增加 DynamicFilterCustom 参数 object sender;#1113
- 修复 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