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

Changelog History
Page 2

  • v1.8.1 Changes

    August 26, 2020
    • 👀 增加 人大金仓 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.8.0 Changes

    August 25, 2020
    • 👀 增加 人大金仓 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 Changes

    August 01, 2020
    • 增加 ColumnAttribute Precision/Scale 设置;
    • 0️⃣ 增加 "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 []
    • ⚡️ 补充 fsql.InsertOrUpdate UpdateColumns 数据存在时只更新指定的字段 #394 #330 #115 #17
  • v1.7.0 Changes

    July 27, 2020
    • 增加 实体属性 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.7.0 版本调整说明

  • v1.6.0 Changes

    June 27, 2020
    • 👀 增加 人大金仓 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 类型;
  • v1.5.0 Changes

    May 24, 2020
    • 修复 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 方法;
    • 0️⃣ 优化 Guid GetDefaultValue 可能导致的错误;
    • 优化 移除 fsql.Transaction 线程事务超时提交机制;#323
    • 👀 调整 BaseEntity,移除 BaseTreeEntity、Tenant 租户,改变事务习惯 wiki

    v1.5.0 版本调整说明

  • v1.4.0 Changes

    April 26, 2020
    • 增加 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 Changes

    April 12, 2020
    • 优化 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 Changes

    April 07, 2020
    • 修复 IncludeMany 第3层无法加载的问题,IncludeMany(a => a.Parent.Parent.Childs);
    • 修复 PostgreSQL CodeFirst/DbFirst 系统表的版本兼容问题;
    • 增加 EfCoreFluentApi HasData 设定 CodeFirst 种子数据;
    • ⚡️ 增加 DbContextOptions.NoneParameter 设置是否使用参数化执行 Insert/Update;
  • v1.3.4 Changes

    April 01, 2020
    • 调整 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")];