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产品