Linq Group на многоуровневом объекте с оператором select - PullRequest
0 голосов
/ 30 апреля 2010

У меня есть 3 объекта набора данных, которые вложены друг в друга, используя объекты набора сущностей. Я выбираю данные как это

var newList = from s in MainTable
from a in s.SubTable1 where a.ColumnX = "value"
from b in a.Detail where b.Name = "searchValue"
select new {
    ID = s.ID,
    Company = a.CompanyName,
    Name = b.Name,
    Date = s.DueDate
    Colour = b.Colour,
    Town = a.Town
};

и это работает нормально, но проблема в том, что в списке объектов / таблице Detail есть много записей для каждого значения Name, поэтому я получаю загрузку повторяющихся строк и, таким образом, хочу отображать только одну запись на b.Name. Я пытался поставить

group s by b.Name into g

до выбора, но затем, кажется, это останавливает выбор, позволяя мне выбрать нужные столбцы (на практике их больше). Как использовать команду group в этом случае, сохраняя выходные строки в «плоском» формате?

1 Ответ

0 голосов
/ 04 мая 2010

Добавление комментария в качестве ответа на закрытый вопрос: - Конечно, если вы группируете свои результаты, вы не сможете выбрать столбец дочернего элемента, это потому, что может быть несколько дочерних элементов, и вам нужно указать агрегированный столбец, например, sum, max etx -

...