Skip to content

Releases: dotnetcore/FreeSql

v1.5.0

24 May 20:22
Compare
Choose a tag to compare

FreeSql 1.5.0 最新版本(番号:好久不见)

  • 修复 non public ctor #291
  • 修复 浮点类型 NoneParameter 不使用科学字符串表示;
  • 修复 IgnoreColumns 相关方法解析表达式 a => new [] { "Id" .. } 无效的 bug;
  • 修复 Column(ServerTime=xxx) MySql 下无法保留精度的问题;
  • 修复 ISelect.ToDataTable(lambda) 未使用 AsProperty 返回数据;
  • 修复 IUpdate.Set(a => a.xx = null) 表达式解析 bug;#311
  • 修复 Enum 类型无元素时的错误;
  • 增加 IFreeSql.InsertOrUpdate 方法 wiki
  • 增加 ISelect.WhereDynamicFilter 方法实现动态过滤条件(与前端交互)wiki
  • 增加 表达式解析 yyyyMMdd 常用 c# 日期格式化;
  • 增加 WhereCascade/GlobalFilter 表达式子查询的支持;
  • 增加 [Description] 元数据注释,优先级低于 c# 代码注释;
  • 增加 IUpdate.SetIf 方法;
  • 增加 IUpdate.SetSourceIgnore 方法,可实现忽略 null 属性的更新;
  • 增加 FreeSqlBuilder.UseExitAutoDisposePool 方法;
  • 优化 Guid GetDefaultValue 可能导致的错误;
  • 优化 移除 fsql.Transaction 线程事务超时提交机制;#323
  • 调整 BaseEntity,移除 BaseTreeEntity、Tenant 租户,改变事务习惯 wiki

v1.5.0 版本调整说明

v1.4.0

26 Apr 06:24
Compare
Choose a tag to compare
  • 增加 FreeSql.Provider.Dameng 基于 DmProvider Ado.net 访问达梦数据库;
  • 增加 FreeSql.DbContext OnModelCreating 虚方法,实现在 DbContext 使用 FluentApi;
  • 增加 FreeSql.DbContext 与 EFCore 相似的 FluentApi 对动态类型的处理;#281
  • 移除 FreeSql.Extensions.EfCoreFluentApi,功能移至 FreeSql.DbContext;
  • 增加 FreeSqlBuilder 自动识别 EFCore 实体特性 Key/Required/NotMapped/Table/Column;
  • 增加 IInsert InsertColumns/IgnoreColumns 方法重载输入 string[];#275
  • 增加 DbFirst 获取字段的默认值信息;
  • 增加 FreeSql.Generator -Match 参数只生成匹配的表;
  • 增加 FreeSql.Extensions.JsonMap FluentApi 扩展方法;#279
  • 增加 DbFirst DbColumnInfo Position 属性,字段默认位置;
  • 增加 UnitOfWorkManager 工作单元管理器,实现多种传播事务,移除 UnitOfWork.Current 静态属性;#289
  • 增加 DbContextOptions.EnableGlobalFilter 设置是否在 DbContext/Repository 中启用全局过滤器(默认 true);
  • 优化 主键 Guid 自动赋值的优先级,低于 Aop.AuditValue 事件(实现自定义 Guid 值);
  • 优化 WhereDynamic 传入 string 的时候自动转为主键的类型值;
  • 修复 ISelect.From 内部 WhereIf 二次表达式解析 bug;
  • 修复 Guid -> MapType(string) 在 FreeSql.DbContext 的类型转换错误;
  • 修复 表达式解析 Include 父子导航可能失败的 bug;
  • 修复 实体类型为 char 时 ExpressionTree 读取失败 bug;#283
  • 修复 IncludeMany 集合属性为 a.xx.Childs 时,可能出现错误;

v1.4.0 版本调整说明(包含v1.3.6+)

v1.3.6

12 Apr 11:30
Compare
Choose a tag to compare
  • 优化 DbContext/Repository Orm 属性进行 CURD 与自身事务相同【新突破】;#270
  • 修复 MySql 字符串反斜杠无效的 bug
  • 修复 ExpressionCall 自定义表达式枚举类型入参转换出错;#269
  • 修复 Oracle/Dameng 登陆名为数字开始 pk 命名问题;
  • 增加 GroupBy Count(b.id) 指定字段统计;
  • 增加 GroupBy ToDictionary 返回字段的查询方法,TKey 为 GroupBy 选择的对象;
  • 调整 GroupBy 所有方法不使用 DTO 映射规则;
  • 调整 IUpdate.SetDto 也支持 IgnoreColumns 的逻辑;
  • 调整 ISelect linq to sql 和 queryable 实现依赖移至 FreeSql.Extensions.Linq;

v1.3.5

07 Apr 10:11
Compare
Choose a tag to compare
  • 修复 IncludeMany 第3层无法加载的问题,IncludeMany(a => a.Parent.Parent.Childs);
  • 修复 PostgreSQL CodeFirst/DbFirst 系统表的版本兼容问题;
  • 增加 EfCoreFluentApi HasData 设定 CodeFirst 种子数据;
  • 增加 DbContextOptions.NoneParameter 设置是否使用参数化执行 Insert/Update;

v1.3.4

01 Apr 06:18
Compare
Choose a tag to compare
  • 调整 Repository 接口定义,合并为一个 IBaseRepository;
  • 调整 移除对 System.ValueType 的依赖,减少版本冲突问题;(目前 FreeSql.dll 无任何依赖)
  • 调整 Oracle StringLength/MaxLength -1 时候映射为 nclob;
  • 调整 IInsert/IUpdate NoneParameter 方法,增加参数 isNotCommandParameter 可设置是否使用参数化;
  • 调整 FreeSqlBuilder,准备移除 UseEntityPropertyNameConvert/UseSyncStructureToLower/UseSyncStructureToUpper 方法;#260
  • 移除 In多列表达式函数解析 #243
  • 优化 IncludeMany 扩展方法对 T1 不自动迁移;
  • 优化 BulkCopy 对可空类型的属性处理; #227
  • 优化 IAdo.Query 方法,当传入带主键特性的实体时,防止主键列为 null 时导致整行记录也为 null;
  • 优化 TableInfo 元数据对 interface 实现类 IsVirtual 重写的判断(增加 IsFinal == false);
  • 优化 Navigate 属性未设置 set 时的友好错误提示;
  • 优化 延时属性重写类对 protected set 的支持;
  • 优化 ConnectionPool 提升被动连接断开的体验(会卡的可以升级);
  • 优化 集合导航属性表达式中忘记使用 AsSelect() 的友好错误提示;
  • 增加 FreeSqlBuilder UseNameConvert 方法,类名、属性名都生效;
  • 增加 CodeFirst 实体类注释 -> 表备注,之前只能属性注释 -> 字段备注;
  • 增加 FreeSql.Generator Sqlite 数据库生成实体类;
  • 增加 Sqlite DbFirst 实现;
  • 增加 Oracle clob/nclob 大文本类型读写支持;#259
  • 增加 ISelect.ToTreeList 扩展方法查询数据,加工为树型 List;(注意:实体需要配置父子导航属性)
  • 增加 ISelect`1 ToDictionary 方法查询返回字典;
  • 增加 Pgsql JToken/JObject/JArray 索引访问的表达式解析;
  • 增加 object.Equals 表达式解析;
  • 增加 ISelect`1 AsQueryable 方法,实现将 ISelect 转换为 IQueryable 类型;
  • 增加 ISelect.RawJoin 方法以便实现 Outer Apply 查询;#200
  • 增加 IAdo.ConnectionString 属性返回 UseConnectionString 传入的值;
  • 完善 表达式拼接方法,从 T1-T5;#256
  • 修复 因兼容 #184 导致 MySql Enum 表达式解析为 int 的 bug;
  • 修复 FreeSql.Provider.MySqlConnector Enum 自定义元素值,导致值计算错误的 bug;
  • 修复 SqlServer charindex 表达式函数参数位置的错误;
  • 修复 MySql locate 表达式函数参数位置的错误;
  • 修复 UseGenerateCommandParameterWithLambda(true) 时子语句的参数没整合到主语句;#231
  • 修复 本地区域化后 ToSql 产生的错误,比如数字可能生成 SQL 为:100,000;
  • 修复 StringLength/MaxLength 对 Oracle varchar2 类型无效的 bug;
  • 修复 CodeFirst IsNullable 迁移脚本重复 NOT NULL 语法错误;
  • 修复 DbFirst Oracle/Dameng 序列值使用复杂的问题,结合 [Column(InsertValueSql = "xxx.nextval")];

v1.2.1

06 Mar 09:15
Compare
Choose a tag to compare
  • 修复 LazyLoading 依赖项目 CSScript.Core 升级的 bug;
  • 修复 ToList 父子导航可能匹配不正确的 bug;
  • 修复 读写分离创建 IFreeSql 时如果从库不可用导致 iis 退出的 bug;
  • 修复 DbContext/Repository SaveMany 一对多保存时删除条件 bug;
  • 调整 Aop 改为 event 事件;
  • 调整 Ado.AopCommandExecuting/AopCommandExecuted 到 Aop.CommandBefore/After;
  • 调整 DbContext/Repository EnableAddOrUpdateNavigateList 默认关闭;
  • 增加 Aop.TraceBefore/After 事件;
  • 增加 BaseEntity SaveMany 方法;

v1.2.0

28 Feb 10:50
Compare
Choose a tag to compare
  • 增加 nuget 包强签名发布;#201
  • 增加 IUpdate.SetDto 根据 dto 更新的方法;#218
  • 完善 IUpdate.SetSource 组合主键的数据更新单元测试;
  • 修复 ToList(a => new Dto {}) 这种情况按字段名匹配r问题,应该按属性名;#208
  • 修复 Oracle 导航属性 表别名过长的问题;
  • 修复 DbSet.Where 表达式解析报错的问题;#216
  • 修复 DbContext/Repository Update 不更新 DbUpdateValue 的问题;#219
  • 修复 EfFluentApi 一个参数类型问题;

v1.1.0

31 Jan 04:15
Compare
Choose a tag to compare
  • 增加 FreeSql.Provider.MySqlConnector 扩展方法 ExecuteMySqlBulkCopy;
  • 增加 FreeSql.All 全家桶包,懒人专用;
  • 支持 Sqlite :memory: 模式; #191
  • 完善 [Column(ServerTime = Utc)] 特性,对 Update 时也能生效;
  • 完善 [Column(MapType = typeof(byte[]))] 对 Guid/string 的映射支持;#178
  • 完善 MapType byte[] 对 Contains/Parse 表达式解析的处理;
  • 优化 参考 Chloe 表达式针对变量的解析,提升了一倍性能;
  • 优化 IsVersion 字段更新 version=ifnull(version,0)+1,防止字段为 null 一直报错;
  • 优化 IdleTimeout 默认值为 20 秒; #194

  • 修复 BaseRepository.UnitOfWork 延迟设置(即事务开启之后再设置)无效的 bug;
  • 修复 FreeSql.Generator 外键导航属性大写小 bug;#177
  • 修复 DbConnectionPool.Return 在 Sqlite 下的 bug;#179
  • 修复 DbFirst mysql/pgsql/sqlserver 获取主键失败的 bug; 0.10.7 发布后的 bug #182
  • 修复 GroupBy 类型转换错误;#186
  • 修复 .ToList(a => new DTO(a.id)) 报 未将对象引用设置到对象的实例 问题; #187
  • 修复 update语句,二元运算解析出错; #184
  • 修复 xamarin ios 真机无法使用 Sqlite 的问题; #183
  • 修复 父子关系导航属性 Dto 中直接使用 a.Parent 映射错误的 bug;
  • 解决 表名名称包含点,无法进行 CRUD 的问题,由于测试的复杂性,此类情况仅支持 MySql/Sqlite CodeFirst 自动迁移;

注意:尽量不要使用带点的表名,只有 MySql/Sqlite 对此类表名支持 CodeFirst。但是它不影响 CRUD 功能,使用 [Table(Name = "`sys.config`")] 解决

v1.0.1

03 Jan 05:07
Compare
Choose a tag to compare
  • 增加 EfCoreFluentApi 扩展包,接近 efcore fluentApi 的使用习惯;

  • 增加 ColumnAttribute 属性 InsertValueSql,插入数据的时候指定用 sql 值;

  • 增加 ISelect`1.WithSql("select * from user ...") 功能;

  • 完善 PgSql OnConflictDoUpdate 功能增加 DO NOTHING 操作;#174

  • 调整 最大连接池为 +5(属于内部设置);

  • 修复 NoneParameter 无参对 byte[] 二进制拼接的 bug;#170

  • 修复 IAdo.Query<object> 字段名重复的 bug;#162

v1.0.0

25 Dec 12:53
Compare
Choose a tag to compare
  • 增加 FreeSql.Provider.MsAccess 支持 Access 数据库操作,已通过 2003/2007 版本测试;
  • 增加 IInsert.ExecuteSqlBulkCopy 扩展方法执行 SqlBulkCopy 批量插入,在 FreeSql.Provider.SqlServer 可用;
  • 增加 IInsert.ExecutePgCopy 扩展方法执行 PostgreSQL Copy 批量导入,在 FreeSql.Provider.PostgreSQL 可用;
  • 增加 IInsert.ToDataTable 方法,为 BulkCopy 操作提供数据,该方法处理了(表名、字段名、类型)映射和忽略列;
  • 增加 ISelect.ToSql 字段别名设置,默认为 AsIndex,可改为 AsProperty;#158
  • 增加 ISelectGrouping 分组查询总量的方法 .Count();
  • 增加 IInsert/IUpdate BatchOptions 方法指定批量插入的设置;
  • 增加 FreeSql.Generator -Filter 设置选项,可阻止存储过程+视图的生成;
  • 增加 FreeSql.Generator 在目标目录产生 __razor.cshtml.txt 文件,以便自定义修改模板生成;
  • 完善 Select`2-10 多表查询对象,增加 First(select)/ToOne(select)/First<Dto> 方法;

  • 优化 实体基类的属性位置,优先排在最前面;
  • 优化 实体属性,支持 protected set 属性;
  • 优化 ISelect.Count() 之前使用了 OrderBy 会产生的 SQL 语法问题;
  • 优化 AsTable 分表查询 Any/Min/Max/Avg/Sum/Count 的处理;#158
  • 优化 BaseEntity Select 查询数据时自动 Attach;
  • 优化 没有主键的实体,约定 id 命名的属性上若设置了 IsPrimary = false,则其不属于约定主键;
  • 兼容 Vb.Net 无法使用 IncludeMany 的问题;
  • 兼容 Vb.Net 无法使用 int? 类型 = 等号表达式解析;
  • 修复 Ado.Query 查询字段重复时报错;#162
  • 修复 LazyLoading 在 Net4 环境下的问题;

  • 调整 Avg 方法返回值为 double,Sum 方法返回值为 decimal;
  • 整理 实体类 Ctor 有构造函数的映射处理;wiki