Subsonic 将OrderBy与自定义IComparer一起使用亚音速
我试图在亚音速Subsonic 将OrderBy与自定义IComparer一起使用亚音速,subsonic,sql-order-by,icomparer,Subsonic,Sql Order By,Icomparer,我试图在亚音速IQueryable上使用自定义I比较程序调用OrderBy(),如下所示: IQueryable<FooObject> sortedFoos = FooObject.All() .OrderBy(f => f, new FooObjectComparer()); (这是一个用于调试目的的简单实现。实际实现将更加复杂) 我在这里遗漏了什么?您遗漏的是,亚音速无法反映您的比较运算符并找出如何将其转换为SQL。也许你最好的选择是先将对象拉入内存(基于任
IQueryable
上使用自定义I比较程序调用OrderBy()
,如下所示:
IQueryable<FooObject> sortedFoos =
FooObject.All()
.OrderBy(f => f, new FooObjectComparer());
(这是一个用于调试目的的简单实现。实际实现将更加复杂)
我在这里遗漏了什么?您遗漏的是,亚音速无法反映您的比较运算符并找出如何将其转换为SQL。也许你最好的选择是先将对象拉入内存(基于任何标准),然后用比较器对它们进行排序
public class FooObjectComparer : IComparer<FooObject>
{
public FooObjectComparer() {}
public int Compare(FooObject x, FooObject y)
{
return x.MyProperty.CompareTo(y.MyProperty);
}
}