反正是有此代碼可重構?唯一的區別是按部分順序。LINQ查詢需要按升序或在同一個查詢降
Idealy我想這樣的代碼可以重複使用,但我不知道如何有條件地添加和刪除查詢運營商排序依據和OrderByDescending
var linq = new NorthwindDataContext();
var query1 = linq.Customers
.Where(c => c.ContactName.StartsWith("a"))
.SelectMany(cus=>cus.Orders)
.OrderBy(ord => ord.OrderDate)
.Select(ord => ord.CustomerID);
var query2 = linq.Customers
.Where(c => c.ContactName.StartsWith("a"))
.SelectMany(cus => cus.Orders)
.OrderByDescending(ord => ord.OrderDate)
.Select(ord => ord.CustomerID);
很酷。謝謝喬恩。 – 2010-03-29 06:32:01
有點偏題,但上面的代碼是否會正確轉換到Linq2SQL? IOW能夠在構建語法樹並生成SQL之前看到「不受支持」的方法並執行它,這足夠聰明嗎?只是想知道,從來沒有嘗試過。 :) – leppie 2010-03-29 06:34:28
@leppie:這只是調用現有的Queryable方法 - 這些是構建表達式樹的。請注意,此*目前不適用於'IEnumerable',但您可以輕鬆編寫等效的擴展方法。 –
2010-03-29 06:53:52