摘要: 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中解出來的.