10
如果我用兩個OrderBy
方法適用於我的查詢,像LINQ到實體 - 多種排序依據方法不起作用
query.OrderBy(rec => rec.Name).OrderByDescending(rec => rec.Title);
那麼只有第二種方法被應用,第一個被忽略。這是一個錯誤嗎?如果我需要對一列進行升序排序而對另一列進行降序排序呢?方法語法根本無法實現?
如果我用兩個OrderBy
方法適用於我的查詢,像LINQ到實體 - 多種排序依據方法不起作用
query.OrderBy(rec => rec.Name).OrderByDescending(rec => rec.Title);
那麼只有第二種方法被應用,第一個被忽略。這是一個錯誤嗎?如果我需要對一列進行升序排序而對另一列進行降序排序呢?方法語法根本無法實現?
試試這個:
query.OrderBy(rec => rec.Name).ThenByDescending(rec => rec.Title);
你的第二個排序依據是正在重置您的第一個結果集。這就是爲什麼ThenBy
擴展存在。它將保留您的第一個結果集,同時對其應用其他排序。
從本質上講,現有的解決方案爲僞SQL將是這個樣子:
results = SELECT * FROM Obj ORDER BY Name;
results = SELECT * FROM results ORDER BY Title DESC;
...這是不是你想要的。該ThenBy
擴展會是這個樣子:
results = SELECT * FROM Obj ORDER BY Name ASC, Title DESC
感謝解釋 – 2011-01-14 20:52:59