Entity Framework LINQ SelectMany исключение - PullRequest
1 голос
/ 10 февраля 2012

Почему Entity Framework (4.1) с моделью данных, которую вы можете ожидать за следующим запросом, возвращает InvalidOperationException («Уже существует открытый DataReader, связанный с этой командой, который должен быть закрыт первым») для этого?

((IEnumerable<Company>)db.Companies).SelectMany(x => x.Department).ToList();

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Ваш запрос, вероятно, не является проблемой. Вам может потребоваться включить атрибут MultipleActiveResultSets в строке подключения. Проверьте ответ на этот вопрос.

0 голосов
/ 10 февраля 2012

Поскольку использование Linq to EF в качестве IEnumerable поддерживает открытие DataReader, таким образом, вы не можете выполнять другие запросы до его закрытия. Попробуйте материализовать коллекцию как IList, вот так:

db.Companies.ToList().SelectMany(x => x.Department).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...