簡介
在前面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分頁