Skip to content

v0.8.5

Compare
Choose a tag to compare
@2881099 2881099 released this 13 Aug 02:55
· 2624 commits to master since this release
  • 增加 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 替换错误