我创建了一个具有以下参数的函数:

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

你应该被分类。

08-26 14:49