简介
在前面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分页