【发布时间】:2014-04-03 19:50:45
【问题描述】:
我目前正在动态构建一个 linq 表达式树,仅使用类型和属性名称以及此处的代码:“Dynamic LINQ OrderBy on IEnumerable<T>”,请参阅接受的答案。
这适用于大多数属性,但是当属性类型是枚举时,我需要自定义排序顺序,例如按值的字符串表示排序,这可能因语言而异。
例如我有一个车辆类型列表。
public enum VehicleType : int
{
Car = 1,
Train = 2,
Bike = 3,
etc...
}
在英语中,名称将是“Car”、“Bike”和“Train”,但在法语中,它们会是“Voiture”、“Train”和“Vélo”,因此显然排序顺序会有所不同。
构建的表达式必须与 NHibernate(版本 3.3.1.4000)兼容。在枚举排序之前和之后可能会添加排序。
我有为给定语言正确排序的枚举列表(或数组),例如在英语中,列表将按“Bike”、“Car”和“Train”的顺序排列,而在法语中,“Train”、“Bike”和“Car”的顺序是 3、1、2 或 2、3, 1.
无法从数据库中访问枚举值的翻译。例如。我无法查找给定值和语言的名称。
基本上我需要的是一种通过排序列表中枚举值的索引对搜索结果进行排序的方法。
这可能吗?
【问题讨论】:
-
您使用的是哪个版本的 NHibernate?
标签: c# linq sorting nhibernate enums