jtoken判断是否包含键_FreeSql是一个功能强大的NETStandard库,用于对象关系映射程序(O/RM)…

  • Post author:
  • Post category:其他


v2.0.105

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Dec 7, 2020

修复 Ado.Net 扩展方法的多表查询 bug;#592

优化 ToSql 别名大小写问题;#467

优化 IUnitOfWork/DbContext/Repository .Orm.Ado 和 CRUD 都与自身事务保持一致;

完善 IDelete WhereIf(bool, sql) 方法;

v2.0.101

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Nov 24, 2020 · 25 commits to master since this release

以后每三个月一次版本号:2.3/2.6/2.9,修复严重 bug 会发布 2.3.x

增加 IncludeByPropertyName 按属性名进行 Include/IncludeMany 操作;#278

增加 ISelect<…> 多表查询 HzyTuple 新姿势;(感谢 HZY 贡献)

增加 ISelect Cancel 用于取消本次查询;

增加 IncludeIf/IncludeByPropertyNameIf 方法;

增加 表达式树函数解析 byte[] Length;#505

增加 FreeSql Async CancellationToken 参数;#537

增加 FreeSql.DbContext/Repository Async CancellationToken 参数;#537

增加 Oracle/达梦 BulkCopy 支持;

增加 IsVersion 对 byte[] 的支持;#548

增加 IN 参数扩展 where id in @ids;#560

增加 IAdo.QuerySingle 查询单条记录;#560

增加 pgsql 表达式树解析 hstore[“”];

优化 varchar/nvarchar 的 NoneParameter 处理;#519

优化 表达式树 SqlExt.IsNull 对布尔类型的解析;#500

优化 MapRead 对 NULL 字段的处理;

优化 表达式树三元表达式解析,当 Test 为变量时不解析成 case when end;

优化 AsTreeCte 对 MySql 5.6 的兼容;#536

优化 分页 Page(..).Count() 顺序问题;

优化 自动 IsIgnore 处理;

移除 ISelect/IUpdate/IDelete class 约束限制;

修复 线程事务嵌套事务的 bug;#502

修复 #454 优化遗留的 bug,影响 Aop.AuditValue 事件;#521

修复 实体类拥有构造参数时,ToList 映射查询无效的 bug;

修复 FreeSql.Generator 处理 SqlServer 默认值的问题;

修复 SqlServer RowNumber 分页有可能产生顺序不对的 bug;

修复 .net5 单文本部署读取注释报错;

v1.10.3

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Nov 6, 2020

修复 #454 优化遗留的 bug,影响 Aop.AuditValue 事件;#521

如果使用了 Aop.AuditValue,批量更新的时候遇到 Object reference not set to an instance of an object 错误,请升级。

v1.10.1

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Oct 22, 2020 · 3 commits to master since this release

增加 ISelect.InsertInto 将查询转换为 INSERT INTO t1 SELECT … FROM t2 执行插入;#469

增加 GlobalFilter.ApplyOnly 继承的实体才生效;#495

增加 FreeSql.Generator 参数 -readkey 0 的设置;

优化 WhereDynamicFilter 支持 string 比较大小 > < >= <=;#479

优化 IncludeMany 筛选字段中未指定主键,并且 then.IncludeMany 继续向下,则自动附加查询主键;

优化 WhereDynamic 传入 DynamicFilterInfo 也能执行;

优化 WhereDynamic 支持按字段名、属性名匹配;

优化 实体类注释,基类在其他 Assembly 时也能读取;

优化 支持实体类使用 new 重写属性;

优化 ToAggregate 执行时忽略已设置的 OrderBy;

优化 dto 映射查询时忽略已指定的映射,避免重复查询字段;#494

优化 MySql CodeFirst 索引的建立 ;#498

补充 异步方法 ToListAsync(a => {}) 对 IncludeMany 的支持;

修复 AsTreeCte 开启自动迁移时,错误的创建了 as_tree_cte 表;#476

修复 内部 decimal 默认值在 core 3.1+ 报错的问题;

修复 decimal? 可空数字设置 Column Scale 无效的问题(decimal正常);

修复 DbContext/UnitOfWork EntityChangeReport 参数 BeforeObject 值无效的 bug;

修复 lambda 表达式解析变量转换时的 bug;#490

修复 Firebird Embedded 版本系统表 isidentity_type 兼容问题;

修复 Firebird Embedded 2.5 不支持 boolean 的 bug;

v1.9.0

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Sep 23, 2020 · 1 commit to master since this release

增加 FreeSql.Provider.Firebird 数据库实现 #443;

增加 IncludeMany(a => a.Childs).ToList(a => new { a.Childs }) 指定集合属性返回;

增加 ISelect<11..16> 16 个联表查询;

增加 ISelect Aggregate(lambda, out var result) 方法;

增加 ISelect OrderByIf 方法 #446;

增加 ISelect OrderByPropertyName 方法 #446 #278 #361 #197;

增加 IUpdate/IDelete WhereIf 方法 #446;

增加 ISelect/IInsert/IUpdate/IDelete CommandTimeout 方法设置命令超时;

增加 GlobalFilter.ApplyIf 创建动态过滤器;

增加 SqlExt.IsNull 方法;

增加 Oracle DbFirst 视图的支持;

增加 IAdo.CommandFluent(sql) 方法执行 SQL 命令;

优化 string IsNullable = false 时插入 null 自动转为 “” #445;

优化 GetDbParamtersByObject 参数为字典时修剪 @?: 前辍 #456;

优化 SqlExt.Sum/Max/Min/Avg 同时支持开窗或普通聚合函数;

优化 ToSql FieldAliasOptions.AsProperty 别名问题;#467

优化 FreeSql.Generator -Match 支持生成一个表;

调整 FreeSql.Generator 移除 CanInsert = false 特性生成;

调整 AdoNet CRUD 扩展方法到 namespace FreeSql;

修正 SqlServer UseConnectionFactory 类型标识;

补充 达梦 DbFirst int 类型识别;

修复 FreeSql.DbContext 对同一实体重复 Update,第二次无效的 Bug;

修复 ISelect Any(lambda) 条件被附加的问题,不便于再次使用 ISelect 对象;

修复 ISelect ToDelete/ToUpdate 事务对象未传播的 bug;

修复 ISelect Include 多表字段名相同(不区分大小时)时的 bug;

修复 IAdo.Query 返回实体中带有延时导航属性,读取顺序不对的 bug;

修复 Ado.Net Crud 扩展方法事务的友好异常提示;

修复 使用查询参数化功能时 ToList 子查询未传播参数列表的 bug;#462

修复 子查询 Count/Max/Min/Avg/Sum 使用了 Limit(1) 的 bug;#462

修复 IAdo.Query(sql) 错误;

修复 SqlServer SqlBulkCopy IgnoreColumns 无效的 bug;

修复 达梦 DbFirst 获取字段 IsNullable 无效的问题;#454

v1.8.1

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Aug 26, 2020 · 4 commits to master since this release

增加 人大金仓 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(“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.WithSql 方法,支持传入参数化 #413;

v1.7.1

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Aug 1, 2020 · 16 commits to master since this release

增加 ColumnAttribute Precision/Scale 设置;

增加 “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.6.0

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Jun 27, 2020 · 3 commits to master since this release

增加 人大金仓 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

Compare

Choose a tag to compare

Search for a tag


2881099 released this

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 方法;

优化 Guid GetDefaultValue 可能导致的错误;

优化 移除 fsql.Transaction 线程事务超时提交机制;#323

调整 BaseEntity,移除 BaseTreeEntity、Tenant 租户,改变事务习惯 wiki;

v1.4.0

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Apr 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.3.6

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Apr 12, 2020 · 3 commits to master since this release

优化 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

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Apr 7, 2020

修复 IncludeMany 第3层无法加载的问题,IncludeMany(a => a.Parent.Parent.Childs);

修复 PostgreSQL CodeFirst/DbFirst 系统表的版本兼容问题;

增加 EfCoreFluentApi HasData 设定 CodeFirst 种子数据;

增加 DbContextOptions.NoneParameter 设置是否使用参数化执行 Insert/Update;

v1.3.4

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Apr 1, 2020 · 1 commit to master since this release

调整 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.3.3

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Mar 31, 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;

修复 UseGenerateCommandParameterWithLambda(true) 时子语句的参数没整合到主语句;#231;

修复 本地区域化后 ToSql 产生的错误,比如数字可能生成 SQL 为:100,000;

修复 StringLength/MaxLength 对 Oracle varchar2 类型无效的 bug;

修复 CodeFirst IsNullable 迁移脚本重复 NOT NULL 语法错误;

修复 DbFirst Oracle/Dameng 序列值使用复杂的问题,结合 [Column(InsertValueSql = “xxx.nextval”)];

v1.3.2

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Mar 29, 2020 · 1 commit to master since this release

调整 Repository 接口定义,合并为一个 IBaseRepository;

调整 移除对 System.ValueType 的依赖,减少版本冲突问题;(目前 FreeSql.dll 无任何依赖)

移除 In多列表达式函数解析 #243;

优化 IncludeMany 扩展方法对 T1 不自动迁移;

优化 BulkCopy 对可空类型的属性处理;#227

优化 IAdo.Query 方法,当传入带主键特性的实体时,防止主键列为 null 时导致整行记录也为 null;

优化 TableInfo 元数据对 interface 实现类 IsVirtual 重写的判断(增加 IsFinal == false);

优化 Navigate 属性未设置 set 时的友好错误提示;

优化 延时属性重写类对 protected set 的支持;

优化 ConnectionPool 提升被动连接断开的体验(会卡的可以升级);

优化 集合导航属性表达式中忘记使用 AsSelect() 的友好错误提示;

增加 FreeSql.Generator Sqlite 数据库生成实体类;

增加 Sqlite DbFirst 实现;

增加 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 传入的值;

修复 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

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Mar 6, 2020 · 4 commits to master since this release

修复 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

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Feb 28, 2020 · 4 commits to master since this release

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

Compare

Choose a tag to compare

Search for a tag


2881099 released this

Jan 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


2881099 released this

Jan 3, 2020 · 2 commits to master since this release

增加 EfCoreFluentApi 扩展包,接近 efcore fluentApi 的使用习惯;

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

增加 ISelect`1.WithSql(“select * from user …”) 功能;

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

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

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

修复 IAdo.Query 字段名重复的 bug;#162

v1.0.0


2881099 released this

Dec 25, 2019 · 5 commits to master since this release

增加 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 方法;

优化 实体基类的属性位置,优先排在最前面;

优化 实体属性,支持 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

增加 达梦数据库 ODBC 适配,和单元测试,支持 CodeFirst 模式开发;

增加 FreeSql.Generator dotnet-tool 命令行实体类生成工具;

增加 Repository/DbContext SaveMany 方法实现一对多,子数据的完整保存;

增加 IEnumerable.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 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


2881099 released this

Nov 20, 2019 · 19 commits to master since this release

增加 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().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 功能;

v0.10.15

增加 .Net Framework 4.0 的支持,出于环境考虑 .Net Framework 4.0 不支持异步方法;

增加 IndexAttribute 特性,自动迁移索引,以及对应的 FluentApi 方法;

增加 NavigateAttribute 特性对应的 Fluent 功能;#96

增加 ColumnAttribute 可插入(CanInsert)、可更新(CanUpdate);#99

增加 IFreeSql.Insert(List source) 方法;

增加 Aop.ConfigEntity 属性 ModifyIndexResult 现实 IndexAttribute 的设置;

增加 PostgreSQL 的 Odbc 访问提供,相比 FreeSql.Provider.PostgreSQL 支持的类型更少;

增加 通用的 Odbc 访问提供,不能迁移实体到数据库,不能 Skip 这样来分页,理论上能 crud 所有 odbc 数据库;

增加 DbContext/Repository ManyToMany联级保存功能(之前已支持OneToMany);

增加 FreeSql.DbContext 实体对象的变化事件;

增加 List 扩展方法 IncludeMany,实现从已知的内存 List 数据,进行和 ISelect.IncludeMany 相同功能的贪婪加载;

优化 FreeSqlBuilder 处理 MaxLength 特性的容器处理;

优化 枚举属性的默认值容错,枚举下标不存在 0 的时候,mysql 迁移结构默认值报错;

优化 ORACLE Command 绑定变量 BindByName = true;#107

优化 IUpdate.IgnoreColumns/UpdateColumns 可对属性名,或字段名做设置;#95

优化 忽略 List 作为 Curd 类型操作;

补充 Aop.CurdBefore 事件参数 Table 实体类型的元数据;

修复 Pgsql string[] 属性表达式 Contains 缺少类型转换的 SQL 语法错误;

修复 postgresql 12 移除 pg_attrdef.adsrc 列,导致 CodeFirst 方法失败的 bug;

修复 PostgreSQL DbFirst 获取字段类型的时候,没有拼得字符串的长度(如 varchar(255));

修复 DbFirst 当表数量过大时(如 oracle 表数量大于 1000),可能报错的 bug;

修复 FreeSql.DbContext/FreeSql.Repository 当主键为 Guid? 可空类型时,发生参数错误;

System.ArgumentException:“Expression of type ‘System.Guid’ cannot be used for assignment to type ‘System.Nullable`1[System.Guid]’”

移除 ColumnAttribute.Unique 属性设置,改为 IndexAttribute 特性设置唯一键;

v0.9.18

增加 FreeSql.Provider.Odbc,实现 Oracle/SqlServer/MySql/PostgreSQL 的 Odbc 专用访问提供;

增加 通用的 Odbc 访问提供,理论上能 crud 所有 odbc 数据库;

增加 FreeSql.Extensions.JsonMap 扩展包,实现快速将对象映射为json字符串的方法;

fsql.UseJsonMap(); //开启功能

class TestConfig

{

public int clicks { get; set; }

public string title { get; set; }

}

[Table(Name = “sysconfig”)]

public class S_SysConfig

{

[Column(IsPrimary = true)]

public string Name { get; set; }

[JsonMap]

public T Config { get; set; }

}

增加 MaxLength 特性的解析,实体字符串长度设置;

class Topic {

[MaxLength(128)]

public string Title { get; set; }

}

增加 BaseRepository.AttachOnlyPrimary 方法,只附加实体的主键值;

在更新前使用可实现不查询数据库再更新、也可以实现更新时不更新值为 null 的字段

class T {

public int id { get; set; }

public string name { get; set; }

public string other { get; set; }

}

var item = new T { id = 1, name = “xx” };

fsql.GetRepository().AttachOnlyPrimary(item).Update(item); //只更新 name

增加 FreeSqlBuilder.UseConnectionString 参数 providerType,可解决因包版本冲突时,可能无法反射获得 FreeSql.Provider 对应的类型,通常这个参数不需要设置;

增加 创建表时指定字段位置,如:[Column(Position = 1],可为负数即反方向位置;

增加 ISelect.ToChunk 实现分块查询数据,减少数据过大时内存占用;

增加 AsTable 多次,可查询分表后的多个子表记录,以 UNION ALL 形式执行;

增加 ISelect.First() 方法;

优化 MaxLength 特性,当指定为 -1 时 DbType 会分别映射类型 text/nvarchar(max)/nvarchar2(4000);

优化 表达式解析未实现的错误提醒,如 $””;

优化 AsTable UseSyncStructureToLower/ToUpper 设置,兼容 AsTable((t,o) => “(select * from tb)”);

优化 ISelect`1.Include之后ToList参数includeNestedMembers默认为true;

优化 MapType DateTime/DateTimeOffset 类型转换互通;

移除 FreeSql.Repository 扩展方法 FromRepository;

修复 批量更新 bug,当某行某字段值为null,其他行的该字段也更新成了null;【重大 bug】

修复 Lambda 表达式中 DateTime.Now.ToString(“yyyyMMdd”) 不能直接执行的 bug;

修复 属性无set自动忽略的bug;

修复 导航属性配置,循环关系的情况下可能导致的 bug;

修复 导航属性配置和Aop冲突的 bug;

修复 Aop.AuditValue 与 FreeSql.Repository 主键状态管理的冲突;

修复 MapType 表达式解析时的层级 bug,可能出现 ExpressionTree 类型错误;

v0.9.17


2881099 released this

Sep 19, 2019 · 2 commits to master since this release

增加 FreeSql.Provider.Odbc,实现 Oracle/SqlServer/MySql 的 Odbc 访问提供;

增加 FreeSql.Extensions.JsonMap 扩展包,实现快速将对象映射为json字符串的方法;

fsql.UseJsonMap(); //开启功能

class TestConfig

{

public int clicks { get; set; }

public string title { get; set; }

}

[Table(Name = “sysconfig”)]

public class S_SysConfig

{

[Column(IsPrimary = true)]

public string Name { get; set; }

[JsonMap]

public T Config { get; set; }

}

增加 MaxLength 特性的解析,实体字符串长度设置;

class Topic {

[MaxLength(128)]

public string Title { get; set; }

}

增加 BaseRepository.AttachOnlyPrimary 方法,只附加实体的主键值;

在更新前使用可实现不查询数据库再更新、也可以实现更新时不更新值为 null 的字段

class T {

public int id { get; set; }

public string name { get; set; }

public string other { get; set; }

}

var item = new T { id = 1, name = “xx” };

fsql.GetRepository().AttachOnlyPrimary(item).Update(item); //只更新 name

增加 FreeSqlBuilder.UseConnectionString 参数 providerType,可解决因包版本冲突时,可能无法反射获得 FreeSql.Provider 对应的类型,通常这个参数不需要设置;

增加 创建表时指定字段位置,如:[Column(Position = 1],可为负数即反方向位置;

增加 ISelect.ToChunk 实现分块查询数据,减少数据过大时内存占用;

增加 AsTable 多次,可查询分表后的多个子表记录,以 UNION ALL 形式执行;

增加 ISelect.First() 方法;

优化 MaxLength 特性,当指定为 -1 时 DbType 会分别映射类型 text/nvarchar(max)/nvarchar2(4000);

优化 表达式解析未实现的错误提醒,如 $””;

优化 AsTable UseSyncStructureToLower/ToUpper 设置,兼容 AsTable((t,o) => “(select * from tb)”);

优化 ISelect`1.Include之后ToList参数includeNestedMembers默认为true;

优化 MapType DateTime/DateTimeOffset 类型转换互通;

移除 FreeSql.Repository 扩展方法 FromRepository;

修复 批量更新 bug,当某行某字段值为null,其他行的该字段也更新成了null;【重大 bug】

修复 Lambda 表达式中 DateTime.Now.ToString(“yyyyMMdd”) 不能直接执行的 bug;

修复 属性无set自动忽略的bug;

修复 导航属性配置,循环关系的情况下可能导致的 bug;

修复 导航属性配置和Aop冲突的 bug;

修复 Aop.AuditValue 与 FreeSql.Repository 主键状态管理的冲突;

修复 MapType 表达式解析时的层级 bug,可能出现 ExpressionTree 类型错误;

v0.8.11

v0.8.11

增加 Aop.AuditValue 事件,在插入/更新数据时审计属性值,wiki;

v0.8.10

修复 Pgsql 批量更新使用 NoneParameter 后日期类型的语法 bug;

修复 Oracle DbFirst 大小写问题没正确获取列对应 CsType 值的 bug;

v0.8.8

优化 导航属性的关系,友好支持 int/int? 映射;

修复 IncludeMany 变异 Where 指定的属性类型不一致的 bug;(如 int 和 int?)

v0.8.7

修复 导航关系多属性时的错序 bug;

修复 延时属性的类,没有设置Namespace时的 bug;

v0.8.6

补充 使用 IsIgnore 忽略后,表达式再使用时的友好错误提示;

优化 DbContext/Repository 局部调整;

修复 DbContext.Save 只查询不更新的bug;

v0.8.5


2881099 released this

Aug 13, 2019 · 7 commits to master since this release

v0.8.5

修复 ISelect.WhereCascade 当内部使用 (a as BaseEntity).TenantId 时报错的 bug;

修复 ISelect Sum/First 子查询时,若子查询实体类与主查询一样时,导致的 bug;

v0.8.4

修复 IUpdate.Set 表达式传入匿名类更新多个字段,后表达式未加[]或””的 bug;

修复 Aop.ConfigEntityProperty 操作导航属性后,执行 insert 语句认为它也是字段的 bug;

v0.8.3

增加 FreeSql.Provider.Oracle 下的 OraclePrimaryKeyName 特性,手工设置主键名防止默认名过长问题;

修复 查询重复数据时使用 IncludeMany 出现字典重复添加的 bug;(如一对多使用LeftJoin查询,主实体查询出了重复的数据)

补充 ISelect`T1…T10 LeftJoin/InnerJoin/RightJoin 多参数方法;

v0.8.2

修复 Oracle 表达式 DateTime.Subtract(DateTime) 解析 bug;

增加 IFreeSql.Select`T1…T10 的多表查询扩展方法;

增加 表达式函数 string.IsNullOrWhiteSpace 解析;

优化 内部实体管理的默认值,防止导航属性使用抽象类/接口时出现错误;

v0.8.1

优化 表达式中不能使用 c# 函数的问题,

如:where(a => HttpContext.Session.GetString(“UserID”) == a.UserId)

优化 IUpdate.Set 表达式传入匿名类更新多个字段;

优化 IInsert.InsertIdentity 可插入自增属性;

修复 Oracle CodeFirst 使用 OldName 迁移自增字段时,未删除旧的触发器和序列的 bug;

v0.7.16

增加 UnitOfWork.Current 静态属性,AsyncLocal 实现 [NETStandard 2.0];

修复 CodeFirst 迁移代码注释到数据库,继承的基类未生效的 bug;

v0.7.15

优化 ExpressionTree 类型转换的友好错误提示;

修复 SqlServer IUpdate.ExecuteUpdated 拼接SQL bug;

v0.7.13

增加 ISelect.WhereCascade 实现多表查询时,向每个表中附加条件; wiki;

增加 表达式对基类转换的解析,如:Where(a => (a as BaseEntity).IsDeleted == true);

增加 Examples 项目 base_entity,利用 BaseEntity 实现简洁的数据库操作;

v0.7.12

修复 .From 多表查询别名的匹配 bug;

修复 SqlServer 未处理字符串前面加N 的 bug;

增加 子查询判断,如果使用了相同 ISelect 会死循环;

增加 连接字符串错误时的友好提示;

v0.7.9

补充 Navigate(ManyToMany = typeof(中间表)) 多对多自定义配置;

修复 LambadaExpressionExtensions 扩展方法 And/Or 当存在二级 lambada 时替换错误的 bug;

如:where.Add(a => a.Tags.Any(b => …)),b 替换错误

v0.7.8

增加 子查询函数 First、Count、Min、Max、Sum、Avg 的支持 #wiki;

补充 Oracle DbFirst raw 等类型映射处理,其他未处理的类型将映射为 string;

v0.7.6


2881099 released this

Jul 4, 2019 · 1 commit to master since this release

v0.7.6

优化 表达式 true && … 解析的处理;

优化 Navigate 指定联合键关系时,对属性顺序的要求,当类型不一样、名称一样时无须指明属性的顺序,如:[Navigate(“MemberId, ShopId”)];

修复 Insert/Update 大批量操作分批执行时,如果外部使用了 Ado.Transaction,没有使用线程事务对象,而是创建了新事务的 bug;

修复 Insert ClearData 重复利用的 bug(使用 IgnoreColumns 进行大批量插入时会发生);

修复 ISelect.From 当传入相同的两个实体类型,可能导致内部 Join 无法匹配的 bug;

增加 IGroupSelect ToSql(string) 重载方法;

修复 根据代码注释,迁移到数据库备注,当实体类属于 .exe 程序集时的 bug:System.Xml.XmlException:“根级别上的数据无效。 第 1 行,位置 1。”

v0.7.1


2881099 released this

Jun 26, 2019 · 1 commit to master since this release

相同。

v0.7.1

修复 .From.GroupBy Item2 以上元组参数未查找到的 bug #63;

合并 FreeSql.DbContext 项目至 FreeSql;

v0.6.13

增加 表达式 .HasValue 和 !.HasValue 的解析支持;

增加 表达式 DateTime – DateTime 和 DateTime – TimeSpan 的解析支持;

修复 0.6.12 IUpdate.Set 表达式解析的 bug;

v0.6.12

增加 LambdaExpression 扩展方法 And/Or/Not 快速拼接表达式;

优化 IUpdate.Set 支持 Set(a => new { Clicks = a.Clicks + 1, Time = DateTime.Now }) 指定多个字段更新的用法;

v0.6.11

增加 CodeFirst 根据代码注释,迁移到数据库备注(需要实体类所在项目开启xml生成功能);

0.6.10


2881099 released this

Jun 14, 2019 · 1 commit to master since this release

v0.6.10

增加 TableAttribute 特性属性 DisableSyncStructure,当实体对应的是视图时,可使用本功能禁用迁移;

增加 FreeSqlBuilder UseEntityPropertyNameConvert() 全局转换实体属性名方法 #60;

v0.6.9

修复 批量插入/更新大量数据时,未使用NoneParameter,会导致部分未执行的bug;

v0.6.8

处理 非正常 Provider GC 可能为 null 的错误;

修复 Aop.ParseExpression 使用 FreeParse 方法死循环的 bug;

增加 ISelect.OrderBy 重载,与 WhereIf 相同行为;

v0.6.6

适配 FreeSql.Provider.MySqlConnector,和它对应的266个单元测试;

v0.6.5

增加 NavigateAttribute 配置导航关系;

修复 LinqToSql 方法,开启自动迁移时,迁移了无关类的 bug;

修复 Oracle DbFirst date(7) 类型未处理的 bug;

修复 AsSelect().Any() 未给其他条件时,产生 null bug;

修复 子查询使用非表达式方法时,参数无效的 bug;

增加 FreeSql.Extensions.LazyLoading 对 .net 4.5 的支持;

优化 MySql CodeFirst 增加 DateTime 迁移后,默认值为 0000-00-00 导致读取失败的 bug;

优化 LazyLoading 友好错误提示;

v0.6.3

补充 当初始化 ConnectionString 参数为空时,给出友好错误提示;

修复 IUpdate.IngoreColumns/UpdateColumns 若实体指定别名后,可能无效的bug;

v0.6.2

增加 FreeSql.Provider.MySqlConnector 实现包;

修复 mysql CodeFirst enum/set 小写时,对 MySqlConnector 不友好的 bug;

v0.6.1(拆解 FreeSql)

各数据库单独包、延时加载包;

FreeSql.Extensions.LazyLoading

FreeSql.Provider.MySql

FreeSql.Provider.PostgreSQL

FreeSql.Provider.SqlServer

FreeSql.Provider.Sqlite

FreeSql.Provider.Oracle

移除 IFreeSql.Cache,以及 ISelect.Caching 方法;

移除 IFreeSql.Log,包括内部原有的日志输出,改为 Trace.WriteLine;

IAdo.Query 读取返回变为 List>;

定义 IFreeSql 和以前一样,移除了 UseCache、UseLogger 方法;

0.5.23


2881099 released this

May 28, 2019 · 12 commits to master since this release

v0.5.23

补充 IUpdate.Set(a => a.Click == 10),简化 Set 更新单个字段表达式;

优化 延时导航属性的错误提醒,当无法匹配错误,转到重写类 get 时抛出(实现延时导航属性,与普通导航一起使用);

优化 ICodeFirst.SyncStructure 错误提示,当使用不可迁移实体时;

优化 实体数据属性 DbDefaultValue 处理;

修复 Expression 表达式解析 Convert 的判断 bug;

v0.5.21

修复 IncludeMany ManyToMany,若中间表未使用 延时加载 属性功能时,出现的 bug;

增加 IncludeMany Take(5) 功能,实现每个子集合只取5条记录;

v0.5.18


2881099 released this

May 14, 2019 · 12 commits to master since this release

v0.5.18

增加 ISelect.Include 贪婪加载第一版,已通过集合的导航数据加载,包括 OneToMany/ManyToMany;

修改 IncludeMany ManyToMany ET 缓存的 bug;

完善 IncludeMany 联合键处理;

完善 Include/IncludeMany 单元测试;

修复 Include 延时加载 ManyToOne/OneToOne,当值为 null 时,仍然会查询一次数据;

修改 Query/ToList 混合使用时,可能导致的 ET 缓存 bug;

修改 Query 查询的实体设置了 IsIgnore 时,可能出现 ET 读取位置偏移 bug;

增加 变异的 IncludeMany,即使不是导航属性,也可以贪婪加载,Wiki;

v0.5.12

优化 连接预热策略:min pool size 不设置或 <= 0,则默认预热 5个;也可以设置 1;

取消 MySql CodeFirst 对表字符集的设置;

增加 ToList() 方法,作用与 ToList(a => new Dto()) 相同;

v0.5.16


2881099 released this

May 14, 2019 · 1 commit to master since this release

v0.5.16

增加 ISelect.Include 贪婪加载第一版,已通过集合的导航数据加载,包括 OneToMany/ManyToMany;

修改 IncludeMany ManyToMany ET 缓存的 bug;

完善 IncludeMany 联合键处理;

完善 Include/IncludeMany 单元测试;

修复 Include 延时加载 ManyToOne/OneToOne,当值为 null 时,仍然会查询一次数据;

修改 Query/ToList 混合使用时,可能导致的 ET 缓存 bug;

修改 Query 查询的实体设置了 IsIgnore 时,可能出现 ET 读取位置偏移 bug;

v0.5.12

优化 连接预热策略:min pool size 不设置或 <= 0,则默认预热 5个;也可以设置 1;

取消 MySql CodeFirst 对表字符集的设置;

增加 ToList() 方法,作用与 ToList(a => new Dto()) 相同;

v0.5.11


2881099 released this

May 9, 2019 · 2 commits to master since this release

v0.5.11

修复 复杂的表达式解析 OR 的括号 bug;

增加 linq to sql 的查询语法,以及单元测试,wiki;

补充 IFreeSql 增加与实现 IDisposable 接口(依然要保持单例的使用习惯);

增加 CurdBefore、CurdAfter AOP 事件,可监控执行增删查改;

增加 SyncStructureBefore、SyncStructureAfter AOP 事件,可监控CodeFirst迁移;

v0.5.7

v0.5.7

补充 nuget 包增加 xmlDoc 编译,原来使用者之前一直没有注释;

调整 Column.Unique 定义规则,解决同一属性不可配置多次的问题;

v0.5.6

优化 兼容不同数据库 bool 的表达式解析,如:Where(a => a.Bool)、Where(a => !a.Bool);

v0.5.5


2881099 released this

Apr 26, 2019 · 4 commits to master since this release

v0.5.5

增加 Column.MapType 类型映射,可将 enum 映射为 int/string 等,文档;

增加 Column.Unique 唯一键,多个属性指定相同的标识,代表联合键,#42;

增加 Expression string.Concat,#39;

补充 Expression IEnumerable.Contains 的支持,之前只能数组或IList;

补充 IDbFirst GetTableByDatabase 返回 uk/fk/index 名称,以便迁移;

补充 MapType/Unique 单元测试;

优化 PostgreSQL jsonb 类型使用习惯;



版权声明:本文为weixin_39599317原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。