使用Azure和EF我收到错误消息:
DataReader associated with this Command which must be closed first.
因为我的查询是嵌套的:
foreach (Element s in ElementSet.All()) {
if (somecondition) {
ElementSet.Add()
}
}
如何在使用foreach循环访问ElementSet之前加载ElementSet中的所有元素并关闭连接?
P.S。:显然使用SQL azure我不能在连接字符串中设置MARS,这会使服务器接受多个连接。
答案 0 :(得分:2)
MARS不会使用多个连接,但它允许通过单个连接进行多个并发操作。 MARS was recently added to SQL Azure所以你一定要开启它。
如果要强制EF加载所有实体,请立即在查询中调用ToList
。
foreach (Element s in ElementSet.All().ToList()) {
if (somecondition) {
ElementSet.Add()
}
}