我目前正在動態構建一個linq表達式樹,只使用類型和屬性名稱,代碼如下:「Dynamic LINQ OrderBy on IEnumerable<T>」,請參閱接受的答案。Linq OrderBy使用自定義排序順序
這適用於大多數屬性,但當屬性類型爲枚舉時,我需要自定義排序順序。通過值的字符串表示進行排序,根據語言可以有所不同。
E.g.我有一個車輛類型列表。
public enum VehicleType : int
{
Car = 1,
Train = 2,
Bike = 3,
etc...
}
英文名稱的將是「汽車」,「自行車」和「火車」,但在法國,他們將是「VOITURE」,「火車」和「VELO」,如此明顯的排序順序會有所不同。
構建的表達式必須與NHibernate(版本3.3.1.4000)兼容。在枚舉排序之前和之後可能會添加排序。
我有給定語言正確排列的枚舉的列表(或數組),例如在英語中,該列表將被命令爲「自行車」,「汽車」和「火車」以及法語「火車」,「自行車」和「汽車」,其轉換爲需要的順序爲3,1,2或2,3,4。 1.
無法從數據庫中訪問枚舉值的轉換。例如。我無法查找給定值和語言的名稱。
基本上我需要的是一種通過排序列表中枚舉值的索引來排序搜索結果的方法。
這可能嗎?
你正在使用哪個版本的NHibernate? –
版本3.3.1.4000 – Dasmo