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