Как вы размещаете IGrouping на сгруппированных элементах, а не на группе? - PullRequest
0 голосов
/ 04 октября 2010

Я пытаюсь использовать пропуск и взять IGrouping, но я не хочу, чтобы страница сгруппированного ключа, я хочу сделать это на элементах, которые были сгруппированы.

1 Ответ

0 голосов
/ 04 октября 2010

Вы можете добавить их в список, прежде чем группировать их.


это довольно просто разместить в памяти этот материал:

var page =
 (
  from g in groups
  from item in g
  select item
 ).Skip(100).Take(20);

Это не очень хорошо переводится в sql - вот почему никто не отвечает. Проблема в том, что когда вы запрашиваете элементы группы, linq To Sql повторно запрашивает базу данных по ключу группы, чтобы получить эти элементы. Вот почему лучше заказать и страницу без группировки.

Вы можете добиться условного упорядочения с помощью троичного оператора:

var query = 
from c in Customers
order c by
  c.Name.StartsWith("B") ? 1 :
  c.Orders.Any() ? 2 :
  3,
  c.Name
select c;
...