我剛開始使用EF和類似以下的查詢令我奇怪:「it.Name」實體框架查詢生成器方法:爲什麼「它」而不是lambdas?
var departmentQuery =
schoolContext.Departments.Include("Courses").
OrderBy("it.Name");
具體來說,什麼伸出我是當我使用LINQ to SQL進行工具化時,查詢生成器查詢中的每個篩選器幾乎都可以用lambda指定,例如,在這種情況下,d => d.Name。
我看到有OrderBy的重寫需要使用返回IOrderedQueryable或IOrderedEnumable的lambdas,但是那些顯然沒有獲取ObjectResult所需的Execute方法可能會被數據綁定。
對於我來說,畢竟我已經閱讀了關於lambda如何爲這種東西做出如此重要的意義,以及如何將它們翻譯成表達式樹,然後轉換爲目標語言,這似乎很奇怪 - 爲什麼我需要使用「 it.Name「?
另一個例子是.Where(「it.SomeProperty is not null」)。現在我已經看到了在本機C#中表現的標準查詢運算符的奇怪混雜,以及完全位於TSQL-land中的顯式過濾器。我認爲EF的目的就是擺脫這一點。 – nlawalker 2010-06-15 22:26:01