我有實體的列表,可以表示這樣的:如何通過自定義訂單來訂購實體列表?
Type | Property A | Property B | ...
--------------------------------------
A | ABC | 123 | ...
A | ABC | 123 | ...
D | ABC | 123 | ...
D | ABC | 123 | ...
B | ABC | 123 | ...
C | ABC | 123 | ...
類型是一個字符串,並只能是4個不同值的一個 (例如A,B,C,d)。我需要通過類型訂購這些實體,但需要訂購訂單(例如A,D,B,C)。
我想是這樣的:
var orderType = new Dictionary<string, int>() {
{ "A", 0 },
{ "D", 1 },
{ "B", 2 },
{ "C", 3 }
};
return db.MyEntity
.OrderBy(x => orderType[x.Type])
.ToList();
,但我得到了以下錯誤:
LINQ到實體無法識別方法 '的Int32 get_Item(System.String)' 的方法,這方法不能轉換成商店表達式。
我不明白這個錯誤,不知道如何處理這個OrderBy。您能否告訴我如何通過訂單這些實體類型與自定義訂單?
這行不通,是因爲的EntityFramework就需要到SQL派德字典中的一些原因方式,它不能有效地做。 – jessehouwing 2015-04-03 10:12:42
您可以通過告訴EntityFramework如何將您的字典翻譯爲基於謂詞的函數來實現此目的。 http://stackoverflow.com/a/16839341/736079 – jessehouwing 2015-04-03 10:13:46