我创建了一个具有以下参数的函数:
List<Expression<Func<CatalogProduct, bool>>> orderBy = null
此参数是可选的,如果已填充,则应为我创建order by和than by construction,以便我可以在SQL Server上对结果进行排序。
我试过:
IOrderedQueryable temp = null;
foreach (Expression<Func<CatalogProduct, bool>> func in orderBy)
{
if (temp == null)
{
temp = catalogProducts.OrderBy(func);
}
else
{
temp = temp.ThanBy(func);
}
}
但是“比”没有被重新定义。有人知道我怎么解决这个问题吗?
我将其更改为.thenby(),但这只允许在.orderby()之后直接执行,而不允许在iorderedqueryable上执行
所以temp=catalogProducts.orderby(func).thenby(func);是允许的,但temp=catalogProducts.orderby(func);temp=temp.thenby(func);issn不允许
还有其他建议吗?
最佳答案
两个问题:第一,ThanBy
应该是ThenBy
;第二,ThenBy
只在泛型类型IOrderedQueryable<T>
上可用。
所以改为:
IOrderedQueryable<CatalogProduct> temp = null;
foreach (Expression<Func<CatalogProduct, bool>> func in orderBy) {
if (temp == null) {
temp = catalogProducts.OrderBy(func);
} else {
temp = temp.ThenBy(func);
}
}
你应该被分类。