All Versions
27
Latest Version
Avg Release Cycle
18 days
Latest Release
1235 days ago

Changelog History
Page 3

  • v1.2.1 Changes

    March 06, 2020
    • 修复 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 Changes

    February 28, 2020
    • 增加 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 Changes

    January 31, 2020
    • 增加 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 Changes

    January 03, 2020

    增加 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 Changes

    December 25, 2019
    • 增加 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
  • v0.12.21 Changes

    December 16, 2019
    • 增加 达梦数据库 ODBC 适配,和单元测试,支持 CodeFirst 模式开发;
    • 增加 FreeSql.Generator dotnet-tool 命令行实体类生成工具;
    • 增加 Repository/DbContext SaveMany 方法实现一对多,子数据的完整保存;
    • 增加 IEnumerable<(T1, T2)>.Contains(col1, col2) 扩展方法,实现自定义表达式解析多列无法 IN 的问题;
    • 增加 RawValueAttribute 实现自定义表达式时,使用原始值传入参数;
    • 增加 DateTime 扩展方法 Between 和 BetweenEnd 自定义表达式;
    • 增加 Where In 表达式解析;wiki
    • ⚡️ 增加 ISelect.ForUpdate 排他更新锁(根据数据库类型的规则,见代码注释);
    • 增加 实体特性 [Column(ServerTime = DateTimeKind.Utc)] 使用数据库时间执行插入数据;wiki
    • 增加 ICodeFirst.IsGenerateCommandParameterWithLambda 选项,开启表达式解析的命令参数化;wiki
    • 增加 FreeSqlBuilder.UseConnectionFactory 自定义数据库连接对象的创建方法;
    • 增加 UnitOfWork 静态属性 DebugBeingUsed,用于生产环境监视正在使用中的事务;
    • 👀 增加 BaseEntity 物理删除方法 Delete(true);

    • 完善 SqlServer WithLock 功能,组合多种使用 | 枚举相联;
    • 补充 同线程时间 fsql.Transaction 事务等级参数的传入;
    • 兼容 Vb.Net 表达式解析字符串 = 判断;
    • 优化 IncludeMany 级联查询支持异步适配(之前是同步方式);
    • 优化 MaxLength 功能,并且增加 [Column(StringLength = 100)] 同等的特性功能;
    • 优化 GlobalFilter Apply 自动重命名表达式参数名,避免内容重复问题;
    • 优化 ReadAnonymous 映射类型不一致的容错;
    • 优化 GlobalFilter 过滤器表达式 bool 解析;
    • 优化 ExpressionCallContext 可设置、附加参数化对象;

    • 修复 ISelect.AsTable union all 查询对 count/max/min/avg/sum 的别名 bug;
    • 修复 DbContext TrackList 对匿名对象处理的 bug;#150
    • 修复 Oracle Dbfirst 字段可空、和主键判断的 bug;
    • 修复 ToList((a,b) => new { a, b }) 当 b 为 null 的时候,应该整个 b 为 null;(导航属性没这个问题)
    • 修复 Sqlite attachs 附加数据库别名 bug;
    • 修复 Select<T1, T2> AsTable 析构函数处理可能产生 bug;
    • 修复 多表查询 WhereCascade,如果 Join 没有 On 条件,可能导致生成的 SQL 多了一个 AND 出错;
    • 修复 Dto 映射,在二级即 Dto 属性上又 new Dto 的时候,错误的又重复映射了全部字段;
    • 修复 ToList(a => new Dto { .. }) 在使用 GroupBy 之后报错的 bug;
    • 修复 表达式解析 Guid.NewGuid() 的错误;
    • 修复 Oracle/Sqlite IInsert.ExecuteInserted 方法,返回了被 clear 过后的 _source,其实本来也没意义;
    • 修复 注释迁移到数据库,在 asp.net 4.7 无效的问题;
    • 修复 批量插入 Values 数量限制超出的判断;
    • 修复 IncludeMany(a => a.x1.x2.Childs) 当 x1, x2 为 null 的报 null 错误;

    • ⏱ 调整 fsql.Transaction(Action, Timeout) 参数顺序;
    • 调整 SaveManyToMany 方法名为 SaveMany;
    • 移除 Lazy 延时加载动态代码中的 Newtonsoft.Json 依赖;
  • v0.11.23 Changes

    November 20, 2019
    • 增加 ExpressionCallAttribute 特性,实现表达式函数自定义解析;wiki
    • 增加 IncludeMany 贪婪加载的时候可指定子表的字段,避免查询子表所有字段;
    • 增加 DbContext、Repository SaveManyToMany 方法,实现手工保存 ManyToMany 关联数据;wiki
    • 增加 IFreeSql.GlobalFilter 全局过滤器,wiki
    • 增加 AsTable 和 Repository 分表时的自动迁移分表功能;
    • 🔀 增加 ICodeFirst.SyncStructure(Type entityType, string tableName) 指定表名来迁移实体;

      fsql.CodeFirst.SyncStructure(typeof(Log), "Log_1"); //迁移到 Log_1 表fsql.CodeFirst.SyncStructure(typeof(Log), "Log_2"); //迁移到 Log_2 表

    • ⚡️ 增加 ISelect ToDelete/ToUpdate 方法,实现更复杂的删除/更新操作,wiki

    • 增加 SqlServer ISelect.WithLock 扩展方法,实现 with(nolock) 查询;

    • 增加 SqlServer IFreeSql.SetGlobalSelectWithLock 扩展方法,实现全局设置 with(nolock) 查询;

    • 🚚 增加 FreeSql.DbContext DbSet Remove 可根据 lambda 条件删除数据的方法;

    • 增加 FreeSql.Provider.Sqlite 对 Xamarin 环境下的适配;

    • 增加 MySql 特有功能 Insert Ignore Into;wiki

    • ⚡️ 增加 MySql 特有功能 On Duplicate Key Update 功能,wiki

    • ⚡️ 增加 PostgreSQL 特有功能 On Conflict Do Update 功能,wiki

    • 兼容 SqlServer nvarchar/varchar 表达式解析,分别解析为:N'' 和 '',优化索引执行计划;

    • 优化 Contains 表达式解析为 where in 自动拆分,防止大于 1000 的 SQL 错误,如下:

      var arr = Enumerable.Range(1, 1333).ToArray();var sql = fsql.Select<T>().Where(a => arr.Contains(a.Int)).ToList();//原来:where id in (1..1333)//现在:where id in (1..500) or id in (501..1000) or id in (1001..1333)

    优化 FreeSql.DbContext 构造方法,方便注入使用;

    ⚡️ 优化 Aop.AuditValue 审计过的值,IUpdate.UpdateColumns 即使不指定该列也会更新;

    优化 ManyToMany 中间表不需要指明 [Column(IsPrimary = true)] 特性;

    优化 实体类重写属性 new 如果类型与基类不一致,无法使用的问题;

    完善 SqlServer2005 环境跑通了所有单元测试;

    完善 所有参数化 object parms 可使用 IDictionary 类型传入;

    完善 ToList Dto 映射查询的规则;wiki


    • 修复 Where(a => bool && id > 0) bool 未解析正确的 bug;

    (之前大多数类似的表达都能解析,这次是一个特殊情况)

    • 修复 BaseRepository 析构时与工作单元的回滚逻辑 bug;#131
    • 修复 FreeSql.DbContext 析构方法的 bug,错误的回滚了外部 UnitOfWork;
    • 修复 MapType 属性的表达式解析 数组.Contains 得到是映射之前的值 bug;
    • 修复 MapType 属性 与 IncludeMany 变异功能未映射处理的 bug;
    • 修复 IsNulable 特性不生效的 bug;
    • 修复 SqlServer DbFirst、CodeFirst 查询实体表的列信息错误,当设置了表/列多个扩展属性时发生;
    • 🔒 修复 SqlServer2005 CodeFirst 迁移时,不支持 SET (LOCK_ESCALATION TABLE) 的错误(已做适配);
    • 修复 SqlServer2005 批量插入SQL语法错误,不支持 Values(),()(已做适配);
    • 修复 ReadAnonymous 读取数据设置只读属性的错误;#132
    • 修复 ISelect .From 方法之前使用 .Include 方法,导致生成的多表 JOIN 位置错误的 bug;

    • ⚡️ 移除 IUpdate/IDelete WhereExists 方法;
    • 移除 TableAttribute.SelectFilter 功能;