LINQ несколько заказов по

Я создал функцию, которая имеет следующий параметр:

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

Но чем не пересмотрено. Кто-нибудь знает, как я могу решить эту проблему?


Я изменил его на.ThenBy(), но это разрешено только сразу после.OrderBy(), а не в IOrderedQueryable

so temp = catalogProducts.OrderBy (func).ThenBy (func); разрешено, но temp = catalogProducts.OrderBy(func); temp = temp.ThenBy(func); issn't

Любые другие предложения?

3 ответа

Решение

Две проблемы; во-первых, 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);
            }
        }

и вы должны быть отсортированы.

        foreach (Expression<Func<CatalogProduct, bool>> func in orderBy)
        {
            catalogProducts = catalogProducts.OrderBy(func);
        }

Это будет хорошо.

Попробуй это

   IOrderedQueryable temp = null; 
   foreach (Expression<Func<CatalogProduct, bool>> func in orderBy) 
    { 
      if (temp == null) 
        { 
          temp = catalogProducts.OrderBy(func);
        } 
        else
        { 
          temp = temp.OrderBy(func); 
        } 
     }
Другие вопросы по тегам