2012-06-27 55 views
-3

我有一個很大的問題,一直困惑我很長一段時間,我似乎無法得到任何地方的直接答案,我相信,如果有人可以回答這個問題權威和舉例說明,它不僅有助於我,還有成千上萬的開發者前來。所有我想知道的是什麼是以下概念的特點和它們之間有什麼區別Linq to ... and Lambda Expressions

的LINQ

的LINQ to SQL

LINQ到實體

Linq to Objects

lambda表達式

此外,具體地,可有人告訴我們構建體,例如這些落入上述類別

構建體1

var result = from n in nums 
      where n < 5 
      orderby n 
      select n; 

構建體2

Entities.Person.Where(p => p.FirstName == "John").First(); 

您的經驗教訓已引起人們的熱切期待。

+0

我沒有downvote,但你的問題是一般的(堆棧溢出是關於具體的編程問題),並可以通過做一點google搜索和閱讀 – Guillaume86

回答

3

我敢肯定有一些過度簡單化這裏,但它的價值:

的LINQ是專門爲處理數據集的API。例如,IQueryable來自System.Linq命名空間。 Linq to ...是根據您的數據存儲方式解析相同Linq指令以執行不同操作的不同實現。因此,Linq到SQL將解析您的.Where指令以生成帶有WHERE子句的sql查詢,而Linq到對象將採用相同的指令並生成foreach

A lambda表達式幾乎是匿名代理的簡寫。您通過=>運營商確定了一個lambda。您的參數列表位於=>的左側,可以訪問這些參數並可選擇返回結果的表達式位於右側。

您的兩個代碼示例是可以寫入Linq查詢的不同語法。它們分別稱爲查詢語法和方法語法。