簡體   English   中英

如何關閉與 LINQ / EF 的命令連接

[英]how to close command connection with LINQ / EF

使用 Azure 和 EF 我收到錯誤消息:

 DataReader associated with this Command which must be closed first. 

這是因為我的查詢是嵌套的:

foreach (Element s in ElementSet.All()) {
   if (somecondition) {  
     ElementSet.Add() 
   }
}

如何從 ElementSet 加載所有元素並在使用 foreach 循環遍歷它們之前關閉連接?

PS:顯然對於 SQL azure 我無法在連接字符串中設置 MARS,這會使服務器接受多個連接。

MARS 不會使用多個連接,但它允許通過單個連接進行多個並發操作。 MARS 最近被添加到 SQL Azure所以你一定要打開它。

如果要強制 EF 立即加載所有實體,請在查詢中調用ToList

foreach (Element s in ElementSet.All().ToList()) {
   if (somecondition) {  
     ElementSet.Add() 
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM