2023-11-12
3.2.6.3 版本更新内容:
1. 链式语法增加 Select 方法,支持在查询时过滤查询字段
示例:
ORM.Build<T>()
.Get(it => it.Where(o => o.Mark > 0))
.Select(o=>new { o.Id, o.Name, o.Age })
.ToList();
2. 增加 SqlBulk 批处理方法
-- DataTable
ORM.Build<T>().BulkCopy(DataTable);
-- List<T>
var list = new List<T>();
ORM.Build<T>().BulkCopy(list, o=>new { o.Id, o.Name, o.Age });
-- 需要指定导入的字段
2022-11-04
3.2.2.5 版本更新内容:
1. 新增V3链式语法的初始化方式
原:new ORMFactory<T>()
新:ORM.Build<T>()
2. 增强 RunProc、RunSql 的用法,提高了灵活性、易用性
新:放开了必须传入自定义Model的限制,支持了元组和动态类型的写法
示例:
-- 动态类型
ORM.Build<dynamic>(context).RunSql("select * from t_User").ToList();
-- 元组
ORM.Build<(int Id, string Name)>(context).RunSql("select Id, Name from t_User").ToList();
3. 增加了 AutoMapper 功能
示例:
NT newData = data.MapTo<T, NT>();
2022-10-25
1. 新增大于、小于智能动态拼接(3.2.0.8 版本新增)
DynamicGreaterThan、DynamicLessThan
示例:
-- 与 > 类似
!= null:where Mark > 0 and Age > 20
== null:where Mark > 0
ORM.Get<T>((it => it.Where(o => o.Mark > 0 && o.Age.DynamicGreaterThan(20))
-- 与 < 类似
!= null:where Mark > 0 and Age < 20
== null:where Mark > 0
ORM.Get<T>((it => it.Where(o => o.Mark > 0 && o.Age.DynamicLessThan(20))
2022-10-22
1. 新增智能动态拼接(3.2.0.3 版本新增)
在 Lambda 的 Where 方法中扩展了3个智能动态拼接函数:
DynamicIn、DynamicLike、DynamicEquals
如果传入的值为 null 的情况下自动忽略此固定拼接的Where条件,大量减少了判断与语句拼接的编码工作
示例:
-- 与 In 类似
!= null:where Mark > 0 and Mobile in('111','222','333')
== null:where Mark > 0
ORM.Get<T>((it => it.Where(o => o.Mark > 0 && o.Mobile.DynamicIn("111,222,333"))
-- 与 Like 类似
!= null:where Mark > 0 and Mobile like '%13666666666%'
== null:where Mark > 0
ORM.Get<T>((it => it.Where(o => o.Mark > 0 && o.Mobile.DynamicLike("13666666666"))
-- 与 = 类似
!= null:where Mark > 0 and Mobile = '13666666666'
== null:where Mark > 0
ORM.Get<T>((it => it.Where(o => o.Mark > 0 && o.Mobile.DynamicEquals("13666666666"))
2. 分页实体 MPageData 中的属性:total、rows 变更为 TotalNumber、Data
3. OData 方式替换成 Dynamic 方式
2022-10-12
1. 链式语法支持动态切换数据库或服务器
2. 链式语法支持动态解析自定义的查询字段
2022-10-08
1. 新增链式语法
随着版本的迭代进化,静态方法扩展的参数越来越多,导致用到冷门的参数时需要填写N个前置参数,
为了让开发者能够更便捷自由的Coding,于是在 3.2.0.0 版本中新增了【链式语法】
... coding ...
2019
增加了 Lambda 动态拼接语法,替代了 GetWhere 语法
例:expc.Add(it => it.Where(o => o.String1 == name));
expc.Add(it => it.Where(o => o.String2 == name));
2017 ~ 2018
陆续集成了 Memcached、Redis、RabbitMQ、Ocelot、Consul 等主流组件
2016 ~ 2017
经历了双十一、年末酬宾等大型节日的抢购与秒杀活动,期间不断支持了读写分离、分表分库等功能
2015-11 ~ 2016-1
用遍了市面上的所有开源ORM,各有各的缺点,为了适应互联网快速发展期
基于Dapper打造了一款适合快速开发的OrangeCloud.ORM产品