Skip to content

Releases: dotnetcore/FreeSql

v3.2.680

24 Sep 16:31
Compare
Choose a tag to compare
  • 优化 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

30 Aug 10:54
Compare
Choose a tag to compare

这是一个长期稳定的版本,会持续一年时间只修 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

04 Jul 09:31
Compare
Choose a tag to compare
  • 增加 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

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

v3.2.662

09 Jun 11:40
Compare
Choose a tag to compare
  • 调整 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

01 Jun 07:46
Compare
Choose a tag to compare
  • 增加 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

24 May 09:36
Compare
Choose a tag to compare
  • 增加 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

  • 优化 AsTable 自动分表 Where Equal 判断;#1104
  • 优化 子查询 sum/min/max/avg 默认加 isnull 防止为 NULL 情况;
  • 优化 EnableCascadeSave 级联保存执行逻辑,提升性能;
  • 优化 RawJoin 支持 FULL JOIN 等自定义联表映射;
  • 优化 IncludeMany 三级导航对象自动 _included;#1113

v3.2.640

13 May 05:17
Compare
Choose a tag to compare
  • 增加 pgsql numeric -> BigInteger 映射;#1100
  • 修复 AsTable ManyToMany IncludeMany 无效的问题;#1103
  • 修复 Oracle AsTable 分表嵌套 SQL 拼错错误;#1098
  • 修复 Oracle AsTable 自动分表时间段条件无效的问题;#1099
  • 优化 子查询 sum/min/max/avg 默认加 isnull 防止为 NULL 情况;
  • 优化 EnableCascadeSave 级联保存执行逻辑,提升性能;

v3.2.610

06 May 13:08
Compare
Choose a tag to compare
  • 替换 Dameng 驱动,版本 dm8_20211025_x86_win_64_ent_8.1.2.84.iso。新版本可以解决字符串长度为36时Ado.Net查询数据类型会变成Guid。#1094
  • 升级 MySql.Data.dll 版本至 8.0.29,解决 net60 环境下驱动的 bug;
  • 降低 Microsoft.Data.SqlClient.dll 版本至 2.1.4,避免报错 ssl 证书的问题;(以后版本与 efcore.sqlserver 保持一致)
  • 增加 HavingIf 方法;#1095

v3.2.609

05 May 04:23
Compare
Choose a tag to compare
  • 调整 DbSet/Repository EnableAddOrUpdateNavigateList 支持 OneToOne 级联保存,级联删除(基于内存);
  • 增加 DbSet/Repository DeleteCascadeByDatabase 级联删除方法(基于数据库);
  • 增加 IList<T> IncludeByPropertyName 扩展方法,支持字符串参数;
  • 修复 pgsql IList -> JArray 映射;#1092
  • 优化 dywhere IN 查询按 500 元素分割;#1091
  • 优化 IIF 表达式解析;