【发布时间】:2010-06-21 12:38:32
【问题描述】:
我创建了一个具有以下参数的函数:
List<Expression<Func<CatalogProduct, bool>>> orderBy = null
这个参数是可选的,如果它被填写,它应该为我创建一个订单,而不是构建,这样我就可以在SQL服务器上订购结果。
我试过了:
IOrderedQueryable temp = null;
foreach (Expression<Func<CatalogProduct, bool>> func in orderBy)
{
if (temp == null)
{
temp = catalogProducts.OrderBy(func);
}
else
{
temp = temp.ThanBy(func);
}
}
但是比 By 没有被重新识别。有人知道我该如何解决这个问题吗?
我将它更改为 .ThenBy() 但这仅允许在 .OrderBy() 之后直接使用,而不是在 IOrderedQueryable 上
所以 temp = catalogProducts.OrderBy(func).ThenBy(func);是允许的,但 temp = catalogProducts.OrderBy(func); temp = temp.ThenBy(func);不是
还有其他建议吗?
【问题讨论】:
-
这是英文使用错误,不是编程错误!
-
查看更新后的答案。
-
来自 Jon 的评论,从您现在已删除的答案中重新发布:“在 IOrderedQueryable 上允许使用 ThenBy;在普通 IQueryable 上不允许使用。您确定您已正确声明 temp”跨度>
标签: c# linq .net-4.0 sql-order-by