Как отсортировать элемент, выбранный из базы данных, используя LinQ to SQL в asp.net mvc c # - PullRequest
1 голос
/ 15 декабря 2011

Я хочу отсортировать цену и количество моего товара по этому запросу из базы данных, чтобы показать его на мой взгляд.Я выбрасываю выбор в строку параметров URL-адреса (Продукты? Наличие = НаличиеLowtoHigh & priceSort = priceLowtoHigh & tab = 2).

Это используемый мной linq-sql:

  public IList<Item> Sort(string availability,string priceSort)
  {
      IEnumerable<Item> ien_item;
      if (availability == "availabilityLowtoHigh" && priceSort == "priceLowtoHigh")
      {
            ien_item = from i in this.DataContext.Items

                           orderby i.Quantity ascending
                           orderby i.Price ascending
                           select i;
      }else{
         ien_item = from i in this.DataContext.Items
                       orderby i.Quantity descending
                       orderby i.Price descending
                        select i;
      }
  }

Подробно: еслипараметр доступности строки запроса == "AvailabilityLowtoHigh" и priceSort == "priceLowtoHigh", поэтому товар будет отображаться на странице путем сортировки товаров по количеству от меньшего к большему и от низкой цены до высокой цены.

Могу ли я использовать orderby дважды в моем запросе?

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Правильный синтаксис имеет ключевое слово orderby один раз;разделите несколько заказов запятыми:

ien_item = from i in this.DataContext.Items 
           orderby i.Quantity ascending, i.Price ascending 
           select i; 

или

ien_item = from i in this.DataContext.Items 
           orderby i.Quantity descending, i.Price descending 
           select i; 
0 голосов
/ 15 декабря 2011

Использование linq в вашем случае крайне избыточно. Вы можете просто написать:

ien_item = DataContext.Items
.OrderByDescending(c => c.Quantity)
.ThenByDescending(c => c.Price);

Как вы можете видеть, простой лямбды более чем достаточно, не нужно прибегать к linq (который в конечном итоге будет переведен в лямбду).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...