摘要:[C#]Linq Join & Lambda Join
最近剛接觸Linq跟Lambda語法上還不太熟悉在此紀錄一下。
在開始之前先介紹一個軟體LINQPad用它來練習寫Linq真的很方便,不用特別開一個專案來測試,可以使用LinqPad直接執行看結果,以下的紀錄可直接使用LinqPad執行(資料來源的部分大家就自己隨便弄一個吧,我是直接用MSSQL做一個來用)。
-------------------------------分隔線----------------------------------------
一開始我準備兩個資料表
1. T_Classes (班別資料表)
2.T_Students(學生資料表)
欄位資訊如下:
資料內容:
1.T_Classes
2.T_Students
1. Linq Join Example:
var result = from c in T_Classes join
s in T_Students on c.ClassID equals s.ClassID
where c.ClassName == "一年級"
orderby c.ClassID descending
select new {c.ClassName,s.StudentName};
result.Dump();
Result:
Linq就像大家說的很像T-SQL的倒裝句。
2.Lambda Join Example:
var Lambdajoin = T_Classes.Join(T_Students, //第一個參數為 要加入的資料來源
c => c.ClassID,//主表要join的值
s => s.ClassID,//次表要join的值
(c,s) => new // (c,s)代表將資料集合起來
{
ClassName = c.ClassName,
Name = s.StudentName,
ID = c.ClassID
}).OrderBy(cs => cs.ID).Where(cs => cs.ClassName =="一年級");//排序及查詢條件
Lambdajoin.Dump();
Result:
Lambda的話語法就比較特別一點還真的需要一些時間適應一下。
以上是初步對Linq Join & Lambda Join心得的筆記。