与Linq.Expression一起订购

时间:2013-10-21 22:09:36

标签: c# linq lambda

创建排序表达式时遇到问题。

我有一个类型Expression<Func<Products, bool>>的表达式,它已经包含一个查询表达式。 我想做查询排序,但没有成功。

下面,在CreateSortExpression方法中有一个错误:

private Expression<Func<Products, bool>> CreateOrderQuery(Expression<Func<Products, bool>> condition, descriptorOrder item)
{        
    condition= condition.AndAlso(CreateSortExpression(item.PropertyName));        

    return condition;
}

private Expression<Func<Products, bool>> CreateSortExpression(string p)
{
    Expression<Func<Products, bool>> condition = products => 
          p.OrderBy(products.Options.price);

    return condition;
}

错误消息'System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable,System.Func)'无法从用法中推断出来。尝试显式指定类型参数。

有没有人经历过这个可以帮助我? 感谢。

1 个答案:

答案 0 :(得分:1)

您正在尝试构建一个表达式以传递给OrderBy() 您不想在该表达式中调用OrderBy();你会想要像p => p.Something

这样的东西