如何关闭与LINQ/EF的命令连接
本文关键字:命令 连接 EF 何关闭 LINQ | 更新日期: 2023-09-27 17:58:06
使用Azure和EF时,我收到错误消息:
DataReader associated with this Command which must be closed first.
因为我的查询是嵌套的:
foreach (Element s in ElementSet.All()) {
if (somecondition) {
ElementSet.Add()
}
}
如何从ElementSet加载所有元素并在使用foreach循环浏览它们之前关闭连接?
附言:使用SQL azure时,我无法在连接字符串中设置MARS,这会使服务器接受多个连接。
MARS不会使用多个连接,但它将允许在单个连接上进行多个并发操作。MARS最近被添加到SQL Azure中,所以你绝对应该打开它。
如果要强制EF加载所有实体,请立即在查询中调用ToList
。
foreach (Element s in ElementSet.All().ToList()) {
if (somecondition) {
ElementSet.Add()
}
}