🦄 .NET aot orm, C# orm, VB.NET orm, Mysql orm, Postgresql orm, SqlServer orm, Oracle orm, Sqlite orm, Firebird orm, 达梦 orm, 人大金仓 orm, 神通 orm, 翰高 orm, 南大通用 orm, 虚谷 orm, 国产 orm, Clickhouse orm, QuestDB orm, MsAccess orm.
MIT License
Bot releases are hidden (Show)
Published by 2881099 over 4 years ago
Published by 2881099 over 4 years ago
Published by 2881099 over 4 years ago
Published by 2881099 over 4 years ago
注意:尽量不要使用带点的表名,只有 MySql/Sqlite 对此类表名支持 CodeFirst。但是它不影响 CRUD 功能,使用 [Table(Name = "`sys.config`")] 解决
Published by 2881099 almost 5 years ago
增加 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
Published by 2881099 almost 5 years ago
Published by 2881099 almost 5 years ago
Published by 2881099 almost 5 years ago
fsql.CodeFirst.SyncStructure(typeof(Log), "Log_1"); //迁移到 Log_1 表
fsql.CodeFirst.SyncStructure(typeof(Log), "Log_2"); //迁移到 Log_2 表
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
(之前大多数类似的表达都能解析,这次是一个特殊情况)
Published by 2881099 almost 5 years ago
文档: https://github.com/2881099/FreeSql/wiki/%e8%81%94%e7%ba%a7%e4%bf%9d%e5%ad%98
示例:new List<Song>(new[] { song1, song2, song3 }).IncludeMany(g.sqlite, a => a.Tags);
文档:https://github.com/2881099/FreeSql/wiki/%e8%b4%aa%e5%a9%aa%e5%8a%a0%e8%bd%bd#%E5%AF%BC%E8%88%AA%E5%B1%9E%E6%80%A7-onetomanymanytomany
System.ArgumentException:“Expression of type 'System.Guid' cannot be used for assignment to type 'System.Nullable`1[System.Guid]'”
Published by 2881099 about 5 years ago
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; }
}
class Topic {
[MaxLength(128)]
public string Title { get; set; }
}
在更新前使用可实现不查询数据库再更新、也可以实现更新时不更新值为 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 类型转换互通;
Published by 2881099 about 5 years ago
Published by 2881099 about 5 years ago
增加 FreeSql.Provider.Oracle 下的 OraclePrimaryKeyName 特性,手工设置主键名防止默认名过长问题;
增加 IFreeSql.Select`T1...T10 的多表查询扩展方法;
增加 表达式函数 string.IsNullOrWhiteSpace 解析;
增加 UnitOfWork.Current 静态属性,AsyncLocal 实现 [NETStandard 2.0];
增加 ISelect.WhereCascade 实现多表查询时,向每个表中附加条件; wiki;
增加 表达式对基类转换的解析,如:Where(a => (a as BaseEntity).IsDeleted == true);
增加 Examples 项目 base_entity,利用 BaseEntity 实现简洁的数据库操作;
增加 子查询判断,如果使用了相同 ISelect 会死循环;
增加 连接字符串错误时的友好提示;
增加 子查询函数 First、Count、Min、Max、Sum、Avg 的支持 #wiki;
优化 内部实体管理的默认值,防止导航属性使用抽象类/接口时出现错误;
优化 表达式中不能使用 c# 函数的问题,
如:where(a => HttpContext.Session.GetString("UserID") == a.UserId)
如:where.Add(a => a.Tags.Any(b => ...)),b 替换错误
Published by 2881099 over 5 years ago
Published by 2881099 over 5 years ago
Published by 2881099 over 5 years ago
Published by 2881099 over 5 years ago
Published by 2881099 over 5 years ago
Published by 2881099 over 5 years ago
Published by 2881099 over 5 years ago