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);
  }
}