第二节: 比较EF的Lambda查询和Linq查询写法的区别

 简介

   在前面EF的介绍中,曾多次提到过EF可以使用Lambda和Linq来完成对数据库的访问,这两种的语法的具体使用和注意事项在前面的DotNet进阶的系列章节中已经详细介绍过了,本次借着EF章节,重新调整了一下里面的规范和注意事项。

1. Lambda语法

 七类核心用法:

 0. Select最基本的用法:查询单表中所有数据

 1. Where的用法:单条件、多条件、模糊查询

 2. select查询指定列:匿名类写法(指定匿名类的名称或使用默认表的名称)

 3. 排序问题:

   ① 单条件单次升序:OrderBy;

   ② 单条件单次降序:OrderByDescending;

   ③ 多次升序:OrderBy→ThenBy→ThenBy;

   ④ 多次降序:OrderByDescending→ThenByDescending→ThenByDescending;

   ⑤ 先升序再降序再升序:OrderBy→ThenByDescending→OrderBy;

 4. Join内连接关联查询:先关联、然后写条件(Where、OrderBy),同样道理可以写匿名类(指定列名或不指定列名);单独写一个实体接收

 5. GroupBy单表分组:分组后会将数据分成一些key-value的信息块,key是分类字段,value对应的就是该分类字段的数据集合

 6. GroupJoin外连接查询:(相当于left Join),用法需要显示声明Lambda表达式,而且连接的表需要全部输出(写法要特别注意)

 7. Skip和Take用法:跨过多少条,取多少条、分页公式(一定是先Skip和Take,然后再ToList)

  详细内容:请点击。

2. Linq语法

 六类核心用法

 Linq用法:from....where....select... 为基本框架,缺一不可

 1. where:单条件、多条件、模糊查询

 2. select:同样可以是匿名类(指定名称和不指定名称)和非匿名类的写法

 3. 排序问题:orderby x1 ascending,x2 descending,x3

 4. 关联查询:内连接(隐式内连接和隐式外连接) 和 外链接(左外链接)

 5. group by分组

 6. skip和take分页

   详细内容:请点击。

 

posted @ 2017-10-16 20:43  Yaopengfei  阅读(3890)  评论(0编辑  收藏  举报