LINQ Get Count детальная таблица 2-го уровня - PullRequest
0 голосов
/ 24 июня 2011

Я пытаюсь получить количество записей из таблицы подробностей, и это таблица подробностей в LINQ, и я попадаю в дорожный блок.

Допустим, у меня есть 3 таблицы в этой структуре:

Header
    Detail
        Items

Я хотел бы видеть все элементы заголовка с количеством деталей и количеством его элементов.

from h in Header select new {
  h.Name,
  h.IsEnabled,
  DetailCount = h.Details.Count(),
  ItemCount = h.Details.Items.Count() <---- Here's the problem
}

1 Ответ

2 голосов
/ 24 июня 2011

Вы можете использовать SelectMany:

from h in Header select new {
  h.Name,
  h.IsEnabled,
  DetailCount = h.Details.Count(),
  ItemCount = h.Details.SelectMany(d => d.Items).Count()
}

Или, если хотите, можете суммировать количество элементов каждой детали:

from h in Header select new {
  h.Name,
  h.IsEnabled,
  DetailCount = h.Details.Count(),
  ItemCount = h.Details.Sum(d => d.Items.Count())
}
...