执行查询

返回List

//查所有
List<Student> list = db.Queryable<Student>().ToList();

//分页
int pageIndex = 1;  int pageSize = 20; int totalCount=0; //单表分页 
var page = db.Queryable<Student>().ToPageList(pageIndex, pageSize, ref totalCount);

返回第一个实体

Student item = db.Queryable<Student>().First(it=>it.Id==1);

返回DataTable

DataTable dataTable = db.Queryable<Student>().ToDataTable();

返回Json

var json = db.Queryable<Student>().ToJson();
//等同于Tolist转json 
//序列化时间格式 https://www.donet5.com/ask/14/13955
//SerializeDateTimeFormat

返回字典

 //表达式返回字典
 Dictionary<string,object> dc = db.Queryable<Order>().ToDictionary(it=>it.Id,it=>it.Name);
 //多表查询Key和Value不在一个表
  xxx.Select((x,y)=>new {xkey=x.id,yvalue=y.name}).MergeTable().ToDictionary(it=>it.xkey,it=>it.yvalue);

 //动态Sql返回字典
 Dictionary<string,object> dc = db.Queryable<Order>()
                              .Select<KeyValuePair<string,object>>("id as id1,name as name1")
                              .ToList().ToDictionary(it=>it.Key,it=>it.Value);

返回字典集合

List<Dictionary<string, object>> dcList = db.Queryable<Order>().ToDictionaryList();;


返回行转列(列转行)

行列转换,行专列

var test01 = db.Queryable<Order>()
            .ToPivotTable(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));//返回Datatable
var test02 = db.Queryable<Order>()
            .ToPivotList(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));//返回List<dynamic><br>
var test03 = db.Queryable<Order>()
            .ToPivotJson(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));//返回Json
            
//统计出现非空错误可以加逻辑
 it => it.Count()>0  ? it.Sum(x.Price):0)
 
//可以多列
it=>new {name,id}

返回Sql信息

var sqlinfo= db.Queryable<Student>().ToSql();

返回实体类

当你想把匿名对象换成ViewModel的时候可以快速的建类

var classString= db.Queryable<Student>().Select(it=>new { id=it.id,name=it.name }).ToClassString();

聚合统计验证

db.Queryable<Student>().Count();
db.Queryable<Student>().Any();
db.Queryable<Student>().Max();
db.Queryable<Student>().Min();

返回树形

点击查看: https://www.donet5.com/Home/Doc?typeId=2311

关闭
果糖网