v0.8.5
-
增加 FreeSql.Provider.Oracle 下的 OraclePrimaryKeyName 特性,手工设置主键名防止默认名过长问题;
-
增加 IFreeSql.Select`T1...T10 的多表查询扩展方法;
-
增加 表达式函数 string.IsNullOrWhiteSpace 解析;
-
增加 UnitOfWork.Current 静态属性,AsyncLocal 实现 [NETStandard 2.0];
-
增加 ISelect.WhereCascade 实现多表查询时,向每个表中附加条件; wiki;
-
增加 表达式对基类转换的解析,如:Where(a => (a as BaseEntity).IsDeleted == true);
-
增加 Examples 项目 base_entity,利用 BaseEntity 实现简洁的数据库操作;
-
增加 子查询判断,如果使用了相同 ISelect 会死循环;
-
增加 连接字符串错误时的友好提示;
-
增加 子查询函数 First、Count、Min、Max、Sum、Avg 的支持 #wiki;
-
优化 内部实体管理的默认值,防止导航属性使用抽象类/接口时出现错误;
-
优化 表达式中不能使用 c# 函数的问题,
如:where(a => HttpContext.Session.GetString("UserID") == a.UserId)
- 优化 IUpdate.Set 表达式传入匿名类更新多个字段;
- 优化 IInsert.InsertIdentity 可插入自增属性;
- 优化 ExpressionTree 类型转换的友好错误提示;
- 补充 ISelect`T1...T10 LeftJoin/InnerJoin/RightJoin 多参数方法;
- 补充 Navigate(ManyToMany = typeof(中间表)) 多对多自定义配置;
- 补充 Oracle DbFirst raw 等类型映射处理,其他未处理的类型将映射为 string;
- 修复 ISelect.WhereCascade 当内部使用 (a as BaseEntity).TenantId 时报错的 bug;
- 修复 ISelect Sum/First 子查询时,若子查询实体类与主查询一样时,导致的 bug;
- 修复 IUpdate.Set 表达式传入匿名类更新多个字段,后表达式未加[]或""的 bug;
- 修复 Aop.ConfigEntityProperty 操作导航属性后,执行 insert 语句认为它也是字段的 bug;
- 修复 查询重复数据时使用 IncludeMany 出现字典重复添加的 bug;(如一对多使用LeftJoin查询,主实体查询出了重复的数据)
- 修复 Oracle 表达式 DateTime.Subtract(DateTime) 解析 bug;
- 修复 Oracle CodeFirst 使用 OldName 迁移自增字段时,未删除旧的触发器和序列的 bug;
- 修复 CodeFirst 迁移代码注释到数据库,继承的基类未生效的 bug;
- 修复 SqlServer IUpdate.ExecuteUpdated 拼接SQL bug;
- 修复 .From 多表查询别名的匹配 bug;
- 修复 SqlServer 未处理字符串前面加N 的 bug;
- 修复 LambadaExpressionExtensions 扩展方法 And/Or 当存在二级 lambada 时替换错误的 bug;
如:where.Add(a => a.Tags.Any(b => ...)),b 替换错误