v0.9.18(ODBC)
- 增加 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<T>
{
[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<T>().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 类型错误;