LINQ Выбрать Многие вопрос - PullRequest
0 голосов
/ 26 мая 2011

Можете ли вы использовать SelectMany в запросе к вашей БД и, если можете, какого типа должен быть столбец для этого? Я возиться с LINQPad, и каждый раз, когда я пытаюсь использовать SelectMany, я получаю сообщение об ошибке, и из того, что я читаю, звучит так, будто тип в вашем лямбда-выражении должен быть коллекцией.

Ответы [ 2 ]

1 голос
/ 26 мая 2011
Houses.SelectMany(h => h.HousesPersons.Select(hp => hp.Person.Name))

Если у вас есть 3 таблицы. Дома, ДомаЛюди и Персоны. Houses имеет отношение One-> Many к лицам, использующим HousesPersons для хранения HouseId и PersonId.

Этот запрос даст вам список всех лиц во всех домах в плоском списке, а не сгруппирован по домам.

РЕДАКТИРОВАТЬ: Извините, я не могу заставить AdventureWorks работать на моей машине, чтобы использовать пример из учебника.

0 голосов
/ 26 мая 2011

SelectMany проецирует каждый элемент последовательности (то есть свойство объекта, являющегося перечислением или списком) в IEnumerable<T> и объединяет результирующую последовательность последовательностей в одну последовательность / IEnumerable<T>.

Сказав, что это может быть применимо в среде Linq to Entities, вы можете выбрать свойства навигации (связанные сущности) для нескольких сущностей и выложить их в один список.

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