Skip to content

Releases: dotnetcore/FreeSql

v2.0.101

24 Nov 14:18
Compare
Choose a tag to compare

以后每三个月一次版本号:2.3/2.6/2.9,修复严重 bug 会发布 2.3.x

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<T>/IUpdate<T>/IDelete<T> class 约束限制;

  • 修复 线程事务嵌套事务的 bug;#502
  • 修复 #454 优化遗留的 bug,影响 Aop.AuditValue 事件;#521
  • 修复 实体类拥有构造参数时,ToList<DTO> 映射查询无效的 bug;
  • 修复 FreeSql.Generator 处理 SqlServer 默认值的问题;
  • 修复 SqlServer RowNumber 分页有可能产生顺序不对的 bug;
  • 修复 .net5 单文本部署读取注释报错;

v1.10.3

06 Nov 00:56
Compare
Choose a tag to compare
  • 修复 #454 优化遗留的 bug,影响 Aop.AuditValue 事件;#521

如果使用了 Aop.AuditValue,批量更新的时候遇到 Object reference not set to an instance of an object 错误,请升级。

v1.9.1

06 Nov 00:55
Compare
Choose a tag to compare
  • 修复 #454 优化遗留的 bug,影响 Aop.AuditValue 事件;#521

如果使用了 Aop.AuditValue,批量更新的时候遇到 Object reference not set to an instance of an object 错误,请升级。

v1.8.2

06 Nov 00:55
Compare
Choose a tag to compare
  • 修复 #454 优化遗留的 bug,影响 Aop.AuditValue 事件;#521

如果使用了 Aop.AuditValue,批量更新的时候遇到 Object reference not set to an instance of an object 错误,请升级。

v1.10.1

22 Oct 09:16
Compare
Choose a tag to compare
  • 增加 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

23 Sep 14:10
Compare
Choose a tag to compare
  • 增加 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 类型标识;
  • 补充 达梦 DbFirst int 类型识别;

  • 修复 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

v1.8.1

26 Aug 16:49
Compare
Choose a tag to compare
  • 增加 人大金仓 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<T>("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<T>.WithSql 方法,支持传入参数化 #413

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

01 Aug 04:08
Compare
Choose a tag to compare
  • 增加 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

27 Jul 12:46
Compare
Choose a tag to compare
  • 增加 实体属性 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.7.0 版本调整说明

v1.6.0

27 Jun 09:13
Compare
Choose a tag to compare
  • 增加 人大金仓 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 类型;