Releases: dotnetcore/FreeSql
Releases · dotnetcore/FreeSql
v2.0.101
以后每三个月一次版本号:2.3/2.6/2.9,修复严重 bug 会发布 2.3.x
- 增加 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 约束限制;
v1.10.3
v1.9.1
v1.8.2
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 类型标识;
- 补充 达梦 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
- 增加 人大金仓 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 兼容问题)
- 增加 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 []
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 类型;