查所有
List<Student> list=db.Queryable<Student>().ToList()
|
查询总数
int count=db.Queryable<Student>().Count()
|
按条件查询
db.Queryable<Student>().Where(it=>it.Id==1).ToList()
db.Queryable<Student>().Where(it=>it.name != null ).ToList()
db.Queryable<Student>().Where(it=>it.name == null ).ToList()
db.Queryable<Student>().Where(it=>it.name != "" ).ToList()
|
多条件查询
db.Queryable<Student>().Where(it=>it.Id>10&&it.Name== "a" ).ToList()
db.Queryable<Student>().Where(it=>it.Id>10).Where(it=>it.Name== "a" ).ToList()
|
动态OR查询
var exp= Expressionable.Create<Student>();
exp.OrIF(条件,it=>it.Id==1);
exp.Or(it =>it.Name.Contains( "jack" ));
var list=db.Queryable<Student>().Where(exp.ToExpression()).ToList();
|
模糊查询
db.Queryable<Student>().Where(it =>it.Name.Contains( "jack" )).ToList();
|
根据主键查询
susgar中的single等同于EF中的SingleOrDefault
db.Queryable<Student>().InSingle(2)
db.Queryable<Student>().Single(it=>it.Id==2)
var getAll=db.Queryable<Order>().WhereClassByPrimaryKey( new Order(){Pk1=1,Pk2=xx}).ToList();
vargetAll=db.Queryable<Order>().WhereClassByPrimaryKey(List<Order>).ToList();
|
查询第一条 ,第一行
.First() 等同于C#中的 FirstOrDefault , 没有值返回 null
db.Queryable<Student>().First(it=>it.Id==1)
|
查询最后一条
First() 等同于C#中的 FirstOrDefault , 没有值返回 null
db.Queryable<Student>()
.OrderBy(it=>it.Id,OrderByType.Desc )
.First(it=>it.Id>10)
|
查前几条
db.Queryable<Student>().Take(10).ToList()
|
数据行数
db.Queryable<Student>().Where(it=>it.Id>11).Count()
db.Queryable<Student>().Where(it=>it.Id>11).CountAsync()
SqlFunc.AggregateCount
|
设置新表名
db.Queryable<School>().AS( "Student" ).ToList();
db.Queryable<School>().AS( "dbo.School" ).ToList();
|
是否存在记录
is exists
db.Queryable<Student>().Where(it=>it.Id>11).Any()
db.Queryable<Student>().Any(it=>it.Id>11)
|
In查询(单个字段)
单个字段
int [] allIds = new int []{2,3,31};
db.Queryable<OrderItem>().Where(it => allIds.Contains(it.OrderId)).ToList()
NameList.Contains(it.Name, true )
|
In查询(多个字段)
多个字段 (升级:5.1.4.67-preview04)
List<OrderItem> list=xxx;
db.Queryable<OrderItem>().Where(it => list.Any(s => s.Id == it.Id && s.Name == it.Name))
|
In模糊查询
对象集合In like 升级:5.1.4.67
List<OrderItem> list=xxx;
db.Queryable<OrderItem>().Where(it => list.Any(s => it.Name.Contanins(s.Name)))
|
数组集全 in like :5.1.4.85
List< string > list=xxx;
db.Queryable<OrderItem>().Where(it => list.Any(s => it.Name.Contanins(s)))
|
Not In
int [] allIds = new int []{2,3,31};
db.Queryable<OrderItem>().Where(it => !allIds.Contains(it.OrderId)).ToList()
|
简单排序
db.Queryable<Student>().OrderBy((st,sc)=>sc.Id,OrderByType.Desc).ToList()
https:
|
查询一列
db.Queryable<Student>().Select(it=>it.Name).ToList()
|
查询单条
查询一条
db.Queryable<Student>().Single(it=>it.Id==1)
|
获取最大值
db.Queryable<Order>().Max(it=>it.Id);
db.Queryable<Order>().MaxAsync(it=>it.Id);
|
获取最小值
db.Queryable<Order>().Min(it=>it.Id);
db.Queryable<Order>().MinAsync(it=>it.Id);
|
求和
db.Queryable<Order>().Sum(it=>it.Id);
db.Queryable<Order>().SumAsync(it=>it.Id);
|
查询过滤排除某一个字段
生成的sql Select 不会有Files
db.Queryable<Order>().IgnoreColumns(it=>it.Files).ToList();
var leftQuery=db.Queryable<Order>().IgnoreColumns(it=>it.Files);
var list=db.Queryable(leftQuery).LeftJoin<OrderDetails>((o,d)=>o.id==d.orderid).Select(o=>o).ToList();
var rightQuery= db.Queryable<OrderItem>().IgnoreColumns(it=>it.Files);
var list=db.Queryable<Order>().LeftJoin(rightQuery,(o,d)=>o.Id == d.OrderId).Select(o=>o).ToList();
|