2
在对RavenDB进行查询时,是否可以对枚举进行排序或排序?也许通过提供IComparable?RavenDB按枚举排序
我试过了,但它看起来像它的命令,如果枚举是一个字符串,并且它不适用于将枚举存储为整数。
这里有一个简单的例子:
public class Car
{
public long Id { get; set; }
public int NumberOfDoors { get; set; }
public int MaxSpeed { get; set; }
public Classification Classification { get; set; }
}
public enum Classification
{
Compact,
Hatch,
Convertible,
Muscle
}
我想通过分类顺序命令:肌肉,紧凑,哈奇,敞篷车。我想避免重新排列枚举并将枚举存储为整数。
我已经试过这一点,但它似乎不工作:
//My query
var cars = session.Query<Car>()
.OrderBy(c => c.Classification , new ClassificationComparer())
.Skip(offset)
.Take(size);
public class ClassificationComparer: IComparer<Classification>
{
public int Compare(Classification x, Classification y)
{
return Order(x).CompareTo(Order(y));
}
private int Order(Classification classification)
{
switch (classification)
{
case Classification.Compact:
return 0;
case Classification.Hatch:
return 1;
case Classification.Convertible:
return 2;
case Classification.Muscle:
return 3;
default:
return int.MaxValue;
}
}
}
任何帮助表示赞赏。
谢谢你的输入。我得出的结论是,排序只能在简单的类型上完成,所以你的例子是可以使用的 –