摘要: LINQ to SQL 中可以使用的LINQ函式
LINQ to SQL 中可以使用的LINQ函式
文/黃忠成
我們知道,任何LINQ Expression及LINQ函式呼叫,在LINQ To SQL架構中,最終都會被轉成SQL指令送往資料庫執行,而LINQ To SQL支援了全部的LINQ Expression及部份函式,這意味著你只需熟悉LINQ To Objects,就已經取得了進入LINQ To SQL的入場門票。
但 請注意,LINQ To SQL與LINQ To Objects畢竟有些許不同,從LINQ Expression角度上看來,能下在LINQ To Objects的LINQ Expression,就能下在LINQ To SQL,例如JOIN、GROUP、Multi Select等等。但能在LINQ To Objects呼叫的函式,不見得就能下在LINQ To SQL。
除了【極意之道-.NET Framework 3.5資料庫開發聖典】一書中提及的分辨何者能於LINQ To SQL中呼叫的LINQ函式之大方向外,我將較細節,能運行於LINQ To SQL的LINQ函式列示於下:
Select、SelectMany | Distinct |
Join、GroupJoin | Concat |
DefaultIfEmpty | Union |
OfType、Cast | Intersect |
Where | Except |
First、FirstOrDefault | Any |
Single、SingleOrDefault | All |
Count、LongCount | Sum、Min、Max、Average |
GroupBy | OrderBy、OrderByDescending、ThenBy、ThenByDescending |
ToList、ToArray、AsEnumerable | Skip、Take、Contains |
未列於表中的,如Last、LastOrDefault、ElementAt、ElementAtOrDefault等函式,目前未在支援範圍。
由於MSDN 中對此並無詳細說明(我是找不到啦...),這些資訊是我從Reflector中解出來的.