C# 使用NHibernate HQLGenerator注册Linq扩展方法

C# 使用NHibernate HQLGenerator注册Linq扩展方法,c#,.net,linq,nhibernate,hql,C#,.net,Linq,Nhibernate,Hql,我有一个IQueryable的扩展方法,用于执行OrderByDescending,我从中获取了这个扩展方法 我得到以下错误:无法解析表达式值(NHibernate.Linq.NhQueryable``1[Measurement.Model.Test.TestPieceDto])。其中(t=>((t.ComponentId==8f136b42-8838-42ba-aee1-a33800ad2896)和(t.ProductId==22cb6d1f-1934-489a-b7d7-a3380ad285

我有一个
IQueryable
的扩展方法,用于执行
OrderByDescending
,我从中获取了这个扩展方法

我得到以下错误:
无法解析表达式值(NHibernate.Linq.NhQueryable``1[Measurement.Model.Test.TestPieceDto])。其中(t=>((t.ComponentId==8f136b42-8838-42ba-aee1-a33800ad2896)和(t.ProductId==22cb6d1f-1934-489a-b7d7-a3380ad285c)).OrderByDescending(“CreationTime”)“:当前不支持“Common.Linq.QueryableExtensionsEx.OrderByDescending”方法的重载。

 public static IOrderedQueryable<T> OrderByDescending<T>(this IQueryable<T> source, string property)
 public class OrderByDescendingRuntimeHqlGenerator : IRuntimeMethodHqlGenerator
{
    private readonly IHqlGeneratorForMethod _orderByDescendingGenerator = new OrderByDescendingExtension();

    #region Impementation of IRuntimeMethodHqlGenerator

    public bool SupportsMethod(MethodInfo method)
    {
        return method != null && method.Name == "OrderByDescending";
    }

    public IHqlGeneratorForMethod GetMethodGenerator(MethodInfo method)
    {
        return _orderByDescendingGenerator;
    }

    #endregion Impementation of IRuntimeMethodHqlGenerator
}

public class OrderByDescendingExtension : BaseHqlGeneratorForMethod
{
    public OrderByDescendingExtension()
    {
        SupportedMethods = new[] {ReflectionHelper.GetMethodDefinition(() => QueryableExtensionsEx.OrderByDescending<object>(null, null))};
    }

    public override HqlTreeNode BuildHql(MethodInfo method,
                                         Expression targetObject,
                                         ReadOnlyCollection<Expression> arguments,
                                         HqlTreeBuilder treeBuilder,
                                         IHqlExpressionVisitor visitor)
    {

        return treeBuilder.MethodCall("OrderByDescending", visitor.Visit(arguments[0]).AsExpression());
    }
}