如何解决如何关闭与LINQ / EF的命令连接
| 使用Azure和EF时,我收到错误消息: DataReader associated with this Command which must be closed first.
因为我的查询是嵌套的:
foreach (Element s in ElementSet.All()) {
if (somecondition) {
ElementSet.Add()
}
}
在使用foreach遍历所有Element之前,如何从ElementSet中加载所有Elements并关闭连接?
P.S .:显然,使用SQL Azure时,我无法在连接字符串中设置MARS,这会使服务器接受多个连接。
解决方法
MARS将不使用多个连接,但将允许通过单个连接执行多个并发操作。 MARS是最近添加到SQL Azure的,因此您绝对应该打开它。
如果要强制EF加载所有实体,请立即在查询中调用
ToList
。
foreach (Element s in ElementSet.All().ToList()) {
if (somecondition) {
ElementSet.Add()
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。