前言:前言不重要,linq入門常用的語法,linq語法可以用來寫操作集合、資料庫表集合等等幾乎所有集合類型的操作。下麵就寫幾個案例(以List集合來做的),看代碼和運行結果即可。 本文演示環境:VS2022 + .NET 6 1、創建一個.NET 6.0的控制台項目,用來演示測試和輸出。 2、然後新 ...
前言:前言不重要,linq入門常用的語法,linq語法可以用來寫操作集合、資料庫表集合等等幾乎所有集合類型的操作。下麵就寫幾個案例(以List集合來做的),看代碼和運行結果即可。
本文演示環境:VS2022 + .NET 6
1、創建一個.NET 6.0的控制台項目,用來演示測試和輸出。
2、然後新增兩個實體類,用於後續做測試使用,包括關聯查詢等。
3、初始化一丟丟數據,當做測試的原始數據。
4、先運行下,看下當前數據集合的結果集是怎麼樣的。此處以Json格式展示,以下其他輸出也一樣,都是用Json數據輸出,比較好對比。
5、先玩一下最簡單的lambda表達式的查詢方法,以下只是最基本的操作,還有很多別的擴展使用方法,待自己發現。
6、lambda表達式的操作方法,也可以對查詢結果欄位進行起別名。
7、有一個很好用的判斷集合是否存在數據的,直接使用 Any。 Any裡面也可以寫lambda表達式,例如 xxx.Any(x=>x.Id==2) ,如果結果為True,代表集合裡面存在欄位Id為2的數據。不存在即為False。
8、linq語法,最簡單的查詢方式,from 集合/表的別名 in 集合/表 where 條件 select 欄位集合;
9、同樣的,linq語法裡面的查詢結果欄位名,也可以起別名。
10、可以通過orderby對指定的欄位進行排序。也可以多個欄位併列排序,同時存在升序和降序,待自己發現。
11、也可以關聯查詢,關聯查詢最簡單的查詢語法書 from 表1別名 in 表1 join 表2別名 in 表2 on 表1.欄位 equals 表2.欄位 select 需要篩查的欄位;
也可以繼續拓展出和表3的關聯查詢、表4的關聯查詢,等等……
12、關聯查詢也一樣可以使用Where語句進行約束條件。
13、也可以進行分組查詢。group 後面接的是最終需要查詢的結果集欄位。
14、結果集欄位同樣支持別名、指定欄位等等。
15、以上就是該文章的全部內容,內容很簡單,希望對初學者或者入門的小伙伴會有幫助。當然,上面的演示都是非常基礎和簡單的,平常使用ORM進行操作資料庫、或者操作其他集合,例如DbSet、IEnumerable等等類型的,也都可以支持這麼操作。這樣可以避免直接寫SQL語句進行操作資料庫可能產生的一些不好的情景,例如切換另一個品牌的資料庫之類的,就可能需要重寫SQL語句了;而使用Linq語法就可以一定程度上避免存在這樣的情況,畢竟可以面向實體,只要保證實體沒變,就可以不擔心資料庫切換了,代碼也就不需要更改了。
如果覺得文章有幫助,歡迎點贊推薦、轉發【本文鏈接:https://www.cnblogs.com/weskynet/p/16471967.html 】和留言,謝謝。
歡迎加入QQ群: 群號:1079830632