根据主键 Id 查询

T model = ORM.Get<T>(tblDemo.Id);

根据 Lambda 表达式查询

List<T> list = ORM.Get<T>(
    it => it.Where(o => o.Mark > 0).OrderBy(o => o.CreateDate));

Lambda - In 条件:where Id in (3, 5, 10)

// 用法 1:string[]
string[] ids = new string[] { "3", "5", "10" };
List<T> list = ORM.Get<T>(it => it.Where(o => o.Id.In(ids)));

// 用法 2:List<int>
List<int> listIds = new List<int> { 3, 5, 10 };
List<T> list = ORM.Get<T>(it => it.Where(o => o.Id.In(listIds)));

// 用法 3:直接传值
List<T> list = ORM.Get<T>(it => it.Where(o => o.Id.In(1, 2, 3, 5, 6)));

按条件动态拼接

var expc = new AiExpConditions<tblORMTest>();

if (string.IsNullOrEmpty(name) == false)
    expc.Add(it => it.Where(o => o.String1 == name));

expc.Add(it => it.Where(o => o.Mark > 0).OrderByDescending(o => o.InsertTime));

ORM.Get(expc);

智能动态拼接(3.2.0.3+)

为减少代码级别的"是否拼接"判断,框架提供 5 个智能扩展方法: DynamicInDynamicLikeDynamicEqualsDynamicGreaterThanDynamicLessThan。 传入值为 null 时自动忽略对应条件。

DynamicIn — 与 In 类似where Mobile in ('111','222','333')

ORM.Get<T>(it => it.Where(o => o.Mobile.DynamicIn("111,222,333")));

DynamicLike — 与 Like 类似where Mobile like '%13666666666%'

ORM.Get<T>(it => it.Where(o => o.Mobile.DynamicLike("13666666666")));

DynamicEquals — 与 = 类似where Mobile = '13666666666'

ORM.Get<T>(it => it.Where(o => o.Mobile.DynamicEquals("13666666666")));

DynamicGreaterThan — 与 > 类似

  • != 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)));

DynamicLessThan — 与 < 类似

  • != 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)));

Lambda - Like 条件

List<T> list = ORM.Get<T>(it => it.Where(o => o.Id.Like("abc%")));

SQL 条件查询(参数化)

写法 1:

List<T> list = ORM.GetWhere<T>(
    "where ClassID = @ClassID and Mark > 0",
    "order by CreateDate",
    new { ClassID = "1" });

写法 2:

var paramList = new List<MKeyValue>();
paramList.Add("@ClassID", "1");
List<T> list = ORM.GetWhere<T>(
    "where ClassID = @ClassID and Mark > 0",
    "order by CreateDate",
    paramList);