实体框架LINQ SelectMany异常

时间:2012-02-10 18:01:39

标签: linq entity-framework-4.1

为什么实体框架(4.1)与您在以下查询后面可能期望的数据模型一起返回InvalidOperationException(“已经有一个与此命令关联的打开的DataReader,必须首先关闭”)?

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

2 个答案:

答案 0 :(得分:2)

您的查询可能不是问题。您可能需要在连接字符串中打开MultipleActiveResultSets属性。 Check out the answer for this one.

答案 1 :(得分:0)

因为使用Linq to EF作为IEnumerable保持DataReader打开,因此在关闭它之前不能进行其他查询。尝试将集合实现为IList,如下所示:

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