如果要繼續深入使用 LinQ ,那一定要說一下最近使用的工具 LinqPad。
LinQpad
這工具是一套免費軟體,注意一下環境必須要安裝 .NET Framework 3.5或是4.0以上,免費版功能已經夠用測試LinQ使用。
如果需要code snippets,autocompletion, smart tags, code outlining, .NET Reflector integration 功能就前往升級版本。
詳細說明請至 IT邦幫忙(Peter Chen) : https://ithelp.ithome.com.tw/articles/10193063
創造資料庫
這邊為了快速建檔,可以使用下方語法創建資料庫。
我們需要創建個人資料以及成績,之後會用 LINQ 串出來。
資料庫
1 | /****** Object: Database [TestDB] Script Date: 2021/12/3 下午 10:40:32 ******/ |
資料表結構
1 | CREATE TABLE [dbo].[person]( |
連接LinQ
畫面左邊可以看到有 [add connection] 字眼,點選後選擇 Sql Server 選項,如果不是Sql Server可以選擇下方選項。
這裡會需要自己得登入Sql Server 後,按下完成即可。
使用 LinQPad
使用前到LinQPad記得要切換資料庫,再來請自行在資料庫key資料。
Select 字句
linQ 有兩種寫法,LINQ Query Expression、Lambda Expression。
- LINQ Query Expression
寫法會比較偏向 SQL 語法比較容易學起來,需要注意是每一個結尾都要加上SELECT
字眼。1
from row in Persons select row
- Lambda Expression
LINQ方法配上Lambda運算式,句子會比較好識別。1
Persons.Select(x=>x)
Where 字句
- LINQ Query Expression
以下範例是簡易判斷,如果要增加判斷自行使用(&& 、 ||)。
Example :row.Age != "13" && row.Name == "Eric"
1 | from row in Persons |
- Lambda Expression
1 | Persons.Where(row=> row.Age!= "13") |
Contains
Linq遇到沒有Like語法怎麼辦? 這裡使用 “ Contains “ 類似於Link效果。
- LINQ Query Expression
1 | from row in Persons |
- Lambda Expression
1 | Persons.Where(row=> !row.Age.Contains("3")) |
OrderBy 排序
排序在Sql中是扮演很重要角色,所以要先使用看看LinQ如何呈現。
Asc
用過Sql 都知道Asc代表結果會以由小往大的順序列出,以下使用為例。
- LINQ Query Expression
1 | from row in Persons |
- Lambda Expression
1 | Persons |
Desc
如果有使用過LinQ Desc排序需要打很長的英文字是很正常的,LINQ Query Expression 會需要在結尾加上 “ descending “ 請各位多多留意千萬不要打成Desc。
定義 : DESC 代表結果會以由大往小的順序列出。
- LINQ Query Expression
1 | from row in Persons |
- Lambda Expression
1 | Persons |
GroupBy 群組
GroupBy群組會直接影顯顯示內容,如果需要顯示多筆請加入new{}
字句。
- LINQ Query Expression
1 | from row in Persons |
- Lambda Expression
1 | Persons |
結語
LinQ 使用上如果遇到多種、多個資料行,需要加入 new{}
方式。
以上的介紹的寫法比較常使用的方式,下次章節會介紹 join使用方式。