LINQ to SQL 中可以使用的LINQ函式

code6421發表於2008-05-02

 

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

相關文章