Skip to content

Latest commit

 

History

History
374 lines (369 loc) · 16.5 KB

更新日志.md

File metadata and controls

374 lines (369 loc) · 16.5 KB
  • 2024-11-4

    • SplitQuery 查询优化
    • 版本更新至 v5.40.0
  • 2024-10-30

    • 支持使用变量的形式将 lambda 传入表达式中
    • 版本更新至 v5.39.0
  • 2024-10-1

    • sharding 优化
    • 修改 Chloe.SQLite 读写锁支持递归锁
    • 版本更新至 v5.38.0
  • 2024-9-22

    • 代码优化
    • Chloe.MySql 增加 MySqlFunctions.FindInSet()
    • 版本更新至 v5.37.0
  • 2024-9-11

    • 修改在表达式树中多层嵌套使用 IQuery 对象引发的错误
    • 版本更新至 v5.36.0
  • 2024-9-10

    • bug修改
    • 版本更新至 v5.34.0
  • 2024-9-6

    • 代码优化
    • 版本更新至 v5.33.0
  • 2024-9-4

    • 代码优化
    • 版本更新至 v5.32.0
  • 2024-8-22

    • 支持 SplitQuery
    • 功能增强以及个别 bug 修改
    • 版本更新至 v5.30.0
  • 2024-8-20

    • 修改分片查询有内存暴涨风险问题
    • 版本更新至 v5.28.0
  • 2024-8-18

    • 代码优化
    • 版本更新至 v5.27.0
  • 2024-8-14

    • 性能优化(缓存查询时表达式树解析结果)
    • 版本更新至 v5.26.0
  • 2024-8-5

    • 代码优化
    • 版本更新至 v5.25.0
  • 2024-8-1

    • 代码整理:DbOptions.DefaultInsertCountPerBatchForInsertRange -> DbOptions.DefaultBatchSizeForInsertRange
    • 版本更新至 v5.24.0
  • 2024-7-26

    • InsertRange() 修改:增加参数个数限制,以免超出数据库设置导致报错
    • 版本更新至 v5.23.0
  • 2024-7-22

    • 重构 InsertRange 方法
    • 版本更新至 v5.22.0
  • 2024-7-10

    • IDbContext 实现 ICloneable 接口
    • 版本更新至 v5.21.0
  • 2024-5-23

    • Chloe.Oracle:调整 DateTime.Now 的解析以及调整 OracleTableGenerator 生成脚本换行问题
    • Chloe.SqlServer:升级驱动依赖版本
    • Chloe.Oracle、Chloe.SqlServer 版本更新至 v5.20.1
  • 2024-5-21

    • 代码优化
    • 版本更新至 v5.20.0
  • 2024-1-14

    • 代码优化和 bug 修改
    • 版本更新至 v5.19.0
  • 2023-12-8

    • 执行拦截器时先执行会话拦截器再执行全局拦截器
    • EntityTypeBuilder 初始化时支持使用注解映射关系
    • 支持属性为 null 或空时不参与插入
    • 导航查询时,取消子对象将父对象设置到子对象对应的属性上默认行为,改为显示调用 IQuery.BindTwoWay() 的方式。注:此改动有破坏原本行为实现,谨慎升级!
    • 版本更新至 v5.18.0
  • 2023-12-5

    • 支持人大金仓,由 hongyl 贡献
    • 修改 FeatureEnumerator 在某些情况下出现异常问题
    • 版本更新至 v5.17.0
  • 2023-12-3

    • 调整 string.IsNullOrEmpty() 解析
    • 版本更新至 v5.16.0
  • 2023-12-2

    • 重构 DbContext 构造函数,增加 DbOptions 参数。升级提示:有些属于 DbContext 的选项配置转移到了 DbOptions 中,升级框架版本时请注意。
    • 版本更新至 v5.15.0
  • 2023-11-30

    • 重构属性解析,增加 IPropertyHandler 属性解析器
    • 版本更新至 v5.13.0
  • 2023-11-20

    • 修改更新操作:track 实体后更新实体时对值先做是否改变检查再做不可为 null 检查
    • 支持设置 in 参数最大个数
    • 版本更新至 v5.12.0
  • 2023-11-17

    • 支持 .net8
    • 优化 method handler
    • 版本更新至 v5.11.0
  • 2023-6-11

    • 排除字段功能增强
    • 版本更新至 v5.10.0
  • 2023-6-10

    • 查询支持排除字段,参考 IQuery.Exclude() 方法
    • 修改分片普通 Take 查询如 query.Take(20).ToList() 返回错误数据量 bug
    • SqlGenerator 优化
    • 版本更新至 v5.9.0
  • 2023-5-24

    • 代码整理
    • 版本更新至 v5.7.0
  • 2023-5-15

    • 代码重构优化
    • 版本更新至 v5.6.0
  • 2023-4-21

    • lambda更新操作增强,支持如:this.DbContext.Update(a => a.Id == 1, a => new Person() { Name = this.DbContext.Query().Where(p => p.Id == a.Id).First().Name });
    • 版本更新至 v5.5.0
  • 2023-4-12

    • 删除一些废弃的方法
    • 删除操作增强,支持如 dbContext.Delete(a => !this.DbContext.Query().Select(a => a.Id).ToList().Contains(a.CityId)) 复杂条件删除
    • 版本更新至 v5.4.0
  • 2023-3-22

    • fix #359: 修改带排序的分组查询后再求总数执行错误问题,如 dbContext.Query().GroupBy(a => a.Id).OrderByDesc(a => Sql.Sum(a.Age)).Count()
    • 版本更新至 v5.3.1
  • 2022-11-17

    • fix #344: 过滤器对Count、Max、Min、Avg无效 bug
    • 版本更新至 v5.3.0
  • 2022-5-22

    • 支持分库分表(用法参考:ShardingDemo )
    • 版本更新至 v5.0.0
  • 2021-12-19

    • 使用 C#10
    • Chloe.MySql 支持设置 Schema
    • 版本更新至 v4.19.0
  • 2021-11-27

    • 修改 #275
    • 版本更新至 v4.18.0
  • 2021-6-25

    • 参数类型支持 ParamDirection.ReturnValue
    • 版本更新至 v4.16.0
  • 2021-5-28

    • 异步操作优化(强烈建议升级到此版本)
    • 版本更新至 v4.15.0
  • 2021-1-31

    • 实体支持对指定字段忽略更新(UpdateIgnoreAttribute)
    • 版本更新至 v4.12.0
  • 2021-1-23

    • 支持设置方法解析器
    • 版本更新至 v4.11.0
  • 2020-11-27

    • 修改Query.Any()方法有可能引起的 sql 慢查询问题
    • 修改个别 bug
    • 版本更新至 v4.9.0
  • 2020-7-16

    • 修改bug:#183
    • 版本更新至 v4.8.0
  • 2020-6-21

    • 性能优化
    • 版本更新至 v4.7.0
  • 2020-5-19

    • 修改 DbParam.Value 和 DbParam.Type 都为 null 时的 bug
    • 版本更新至 v4.6.0
  • 2020-5-6

    • 修改 Sum 函数 bug(影响范围Chloe.SqlServer v4.5.0) #161
    • Chloe.SqlServer 更新至 v4.5.1
  • 2020-4-12

    • IDbContext、IQuery 支持异步操作方法
    • 修改些许 bug
    • 版本更新至 v4.5.0
    • 注:此版本不再支持 .Net Framework4.0,如需在 .Net Framework4.0 下使用,请引用 Chloe.ORM v4.1 或以下版本
  • 2020-3-29

    • 添加 IQuery.IncludeAll() 方法
    • 版本更新至 v4.1.0
  • 2020-1-12

    • 支持导航属性,使用方式请参考 github 上的 demo
    • 支持过滤器,使用方式请参考 github 上的 fluent mapping
    • Sequence 支持指定 schema
    • 支持行版本乐观并发控制
    • DbContext.Session 支持传入外部事务
    • 取消 Chloe.SqlServer.Annotations.TimestampAttribute,改用 Chloe.Annotations.ColumnAttribute.IsRowVersion
    • IJoiningQuery 改为 IJoinQuery
    • 版本更新至 v4.0.0
    • 注:此版本较之前版本有些许不兼容(但影响不大),升级请谨慎
  • 2019-11-7

    • 修改bug #129
    • 版本更新至 v3.10.0
  • 2019-5-12

    • 修改bug #90
    • #86 Chloe.Oracle 支持触发器自增字段(AutoIncrementAttribute)
    • 重构 InserRange 接口
    • 版本更新至 v3.9.0
  • 2019-3-23

    • Chloe.SqlServer: 支持 timestamp 类型映射
    • 版本更新至 v3.8.1
  • 2019-3-20

    • DbContext.SqlQuery 方法支持 ColumnAttribute 特性映射
    • 增加 IDbContext.UseTransaction() 方法
    • lambda 中支持 new 数组操作
    • 版本更新至 v3.8.0
  • 2019-3-14

    • 代码优化
    • 版本更新至 v3.6.0
  • 2019-2-27

    • 修改 Chloe.Oracle v3.3-v3.4.2 插入数据存在的bug
    • Chloe.Oracle 版本更新至 v3.4.3
  • 2019-1-20

    • GroupBy 方法参lambda中支持 new 匿名类操作,如:query.GroupBy(a => new { a.CityId, a.Age })
    • 代码优化
    • 版本更新至 v3.4.0
  • 2019-1-3

    • 支持 case when 操作,具体参考:https://github.com/shuxinqin/Chloe/blob/master/src/Chloe/CaseWhen.cs
    • 新增值比较函数 Sql.Compare(T value1, CompareType compareType, T value2),可支持字符串大小于比较
    • 查询时支持 with nolock/updlock
    • 优化oracle插入:利用 returning into 语法返回序列值
    • 版本更新至 v3.3.0
  • 2018-11-7

  • 2018-11-6

    • DbContext.InsertRange 方法增加参数 table
    • SqlServer 插入时,使用 SELECT @@IDENTITY 获取返回的自增值(3.0版本使用的是 output.inserted.Id)
    • 版本更新至 v3.2.0
  • 2018-6-24

    • 支持 fluent mapping
    • 支持用户定义数据库函数(Chloe.Annotations.DbFunctionAttribute)
    • Chloe.SqlServer:支持 SqlServer2012 序列
    • 支持 PostgreSQL 数据库
    • 注:在 v3.0 版本中,实体特性(TableAttribute,ColumnAttribute...)命名空间由 Chloe.Entity 变更为 Chloe.Annotations,相对 v2.* 有些许不同,已用 v2.* 版本的项目谨慎升级
    • 版本更新至 v3.0.0
  • 2018-6-23

    • 修改如果实体指定了 Schema,执行插入、更新、删除操作时不带 Schema 的 bug
    • 版本更新至 v2.28.0
  • 2018-4-28

    • 修改 ReflectionExtension.SetMemberValue 方法始终抛出异常的 bug
    • 版本更新至 v2.27.0
  • 2018-3-25

    • 移除过时类 AggregateFunctions 和 DbFunctions
    • 版本更新至 v2.26.0
  • 2018-3-11

    • 修改在lambda中使用子查询作为相等判断的操作数时生成复杂的sql影响效率问题,如q.Where(a => a.Id == context.Query().First().Id)
    • 版本更新至 v2.25.0
  • 2018-2-3

    • 新增API:IDbContext.SqlQuery(string sql, object parameter)
    • IDbContextServiceProvider -> IDatabaseProvider
    • 版本更新至 v2.24.0
  • 2018-1-6

    • 修改 IQuery.Average 部分方法的返回类型(所有Average方法将返回可空类型,避免当数据量为空时报错)
    • 标记 AggregateFunctions 和 DbFunctions 类 ObsoleteAttribute,取而代之使用 Chloe.Sql
    • 版本更新至 v2.23.0
  • 2017-11-20

    • 新增api:IJoiningQuery.Where()
    • lambda中使用相等(==)或不相等(!=)判断考虑数据库null值问题,如 a.Name == a.XName 会被翻译成 a.Name == a.XName or (a.Name is null and a.XName is null);a.Name != a.XName 会被翻译成 a.Name <> a.XName or (a.Name is null and a.XName is not null) or (a.Name is not null and a.XName is null)
    • 增加判断相等和不等api:Sql.Equals(T value1, T value2),Sql.NotEquals(T value1, T value2),此两个接口不会考虑数据库null值问题
    • 整合 .NET CORE 和 .NET Framework nuget安装包,统一使用安装命令 Install-Package Chloe.xxx,即 .NET CORE 版不再使用额外的安装包 ChloeCore.xxx
    • 版本更新至 v2.22.0
  • 2017-10-27

    • 支持 string.Replace()
    • 版本更新至 v2.21.1
  • 2017-10-20

    • 支持数据库 int64 类型数据映射到枚举
    • 优化 'IN' 查询
    • 性能优化
    • 版本更新至 v2.21.0
  • 2017-10-11

    • fix bug:对于实体包含类型为double,float,decimal的属性,调用 IDbContext.InsertRange() 方法插入数据时,生成错误sql导致插入数据有误。
    • 版本更新至 v2.19.0
  • 2017-9-25

  • 2017-9-18

    • 新增api:IDbContext.InsertRange()
    • Chloe.SqlServer:支持 SqlBulkCopy 批量插入数据接口,MsSqlContext.BulkInsert()
    • Chloe.Oracle:对于 a => a.Name == "" 将被翻译成 Name is null
    • 版本更新至 v2.17.0
  • 2017-9-3

    • api 'IDbContext.SqlQuery()' 的泛型参数支持 dynamic 类型
    • 在 lambda 中支持使用'ToString()'方法(仅部分类型)
    • 版本更新至 v2.16.0
  • 2017-8-24

    • 支持 .NET Core2.0
    • 版本更新至 v2.15.0
  • 2017-8-12

    • 新增api:IGroupingQuery.OrderBy() 和 IGroupingQuery.OrderByDesc()
    • 版本更新至 v2.14.0
  • 2017-8-10

    • lambda 表达式中支持 decimal 类型数值相加
    • 版本更新至 v2.13.0
  • 2017-7-9

    • 实体支持多主键
    • 版本更新至 v2.12.0
  • 2017-7-6

    • #18:支持数据库 byte 类型映射到枚举
    • 修改Chloe.MySql、ChloeSQLite BUG:在 lambda 表达式树中使用 'bool.Parse("1")' 方法时生成错误 sql
    • 版本更新至 v2.11.0
  • 2017-6-18

    • 增加更易用的多表连接查询接口 DbContext.JoinQuery
    • 修改连续调用 Skip 方法时生成错误的 sql 语句 bug,如 IQuery.Skip(10).Skip(5)
    • 版本更新至 v2.10.0
  • 2017-6-15

    • 支持插入无主键的实体
    • 将特性 SequenceAttribute 命名空间修改为 Chloe.Entity,同时将其移到 Chloe/Entity 文件夹下
    • 增加 Add DbExpressionType.Coalesce,修改 ?? 操作符生成sql策略: 如 a.Age??18 将会被翻译成相应的数据库函数,如 ISNULL(Age,18)
    • 修改 IDbSession.BeginTransaction() 的实现:之前版本其内部统一使用 IsolationLevel.ReadCommitted,现修改为调用数据库驱动的无参方法,即 DbConnection.BeginTransaction()
    • 版本更新至 v2.9.0
  • 2017-6-4

    • CURD 支持指定表名
    • Chloe.SQLite 增加读写锁
    • 修改BUG:当枚举类型不是 int 类型时,将枚举值转换为数据库值报错
    • 版本更新至 v2.8.0
  • 2017-5-21

    • 特性 TableAttribute 支持设置 Schema
    • 修改issue#14 Query().Sum 的bug
    • 略微调整字符串相加生成的sql策略
    • 版本更新至 v2.7.0
  • 2017-4-8

    • 特性 ColumnAttribute 增加 DbType 和 Length
    • 支持注册映射类型
    • 在lambda表达式树中支持取模运算符
    • DbContext.SqlQuery() 移除对泛型 T 的 new() 约束
    • 支持数据库 int16 类型映射到 C# 枚举类型
    • Chloe.Oracle:支持数据库 int16 类型映射到 C# 的 bool 类型
    • IGroupingQuery.ThenBy() 更改为 IGroupingQuery.AndBy()
    • 版本更新至 v2.6.0
  • 2017-3-3

    • 简化连接查询操作#9:IJoiningQuery 接口增加多个重载方法,支持 query.LeftJoin((a, b) => a.SN == b.UserSN).LeftJoin((a,b,c) => b.Id==c.BId)... 写法
    • 移除 DbContext.Query() 和 DbContext.QueryByKey(object key, bool tracking = false) 的泛型 TEntity 约束(where TEntity : new()),改为抛出异常的方式,即当传入的 TEntity 泛型不含有空构造函数时会报异常提示
    • 修复bug:执行分组查询如 g = g.Having(a => true); 时,解析 a => true lambda表达式树生成错误 sql 问题
    • 移除废弃的接口,DbContext.CurrentSession 和 DbContext.Update(Expression<Func<TEntity, TEntity>> body, Expression<Func<TEntity, bool>> condition)
    • 更改开源协议:由 apache 2.0 更改为更加宽松的 MIT 开源协议
    • 版本更新至 v2.5.0
  • 2017-1-19

    • 支持在lambda中使用Nullable.HasValue 和 obj.Equals(object obj)
    • 版本更新至 v2.4.0
  • 2017-1-6

    • 增加 sql 拦截器功能
    • 修复问题:.Net Core 版本中通过 DbContext.SqlQuery() 或 IDbSession.ExecuteReader() 方法调用存储过程,如果有输出参数(output),方法执行完得不到返回的参数值
    • 版本更新至 v2.3.0
  • 2016-12-20

    • Fixes bug: 执行查询如 context.Query().Select(a => new User() { Id = a.Id, Age = a.Age }).Where(a => a.Id == 1).ToList();,其中,User.Id 是继承属性,当调用投影映射 Select 方法 Id=a.Id 后,后续的Where或其它方法lambda中用到Id这个属性,会出现异常问题。
    • 版本更新至 v2.2.1
  • 2016-12-18

    • 修改内容:增加API IDbContext.QueryByKey(object key) 和 IDbContext.DeleteByKey(object key)
    • 版本更新至 v2.2.0
  • 2016-12-10

    • 修改内容:如果一个继承属性出现在 IQuery.Select 方法的 lambda 中,会出现空引用异常,现已修复
    • 版本更新至 v2.1.2
  • 2016-12-7

    • 修改内容:InternalDbSession 中的 IDbCommand 是单例可重用的,所以,每次调用 PrepareCommand 方法时需要清掉上次执行的残留参数,即执行 cmd.Parameters.Clear()(主要防止以下“特俗”情况:当执行 sql 过程出现异常,会来不及调用 cmd.Parameters.Clear(),就会出现残留的参数,为了保证每次使用 IDbCommand 不受上次异常情况下的影响,所以得清除一下上次残留的参数)
    • 版本更新至 v2.1.1
  • 2016-12-4

    • 支持 Oracle 数据库
    • 实体支持继承
    • 支持存储过程
    • 重命名:NotAutoIncrementAttribute --> NonAutoIncrementAttribute
    • 废弃 DbContext.CurrentSession 属性,取而代之 DbContext.Session
    • IQuery 接口增加 TakePage 方法
    • 内部代码结构调整
    • 版本升级至 v2.1.0
  • 2016-8-26

    • 版本升级至 v2.0.0
    • 发布 ChloeCore.MySql NuGet 包
  • 2016-8-8

    • 支持 SQLite 数据库
    • .NET Ver update: v1.0.2
    • .NET Core Ver update: v1.0.4
  • 2016-8-1

    • 支持 .NET Core
    • 发行 NuGet 包
      • .NET Ver: v1.0.1
      • .NET Core Ver: v1.0.3
  • 2016-7-25

    • 支持 MySql 数据库
  • 2016-7-4

    • 正式开源