Entity Framework優化一:引發了“System.Data.Entity.Core.EntityCommandExecutionException”類型的異常


錯誤信息:

“System.Data.Entity.Core.EntityCommandExecutionException”類型的異常在 EntityFramework.SqlServer.dll 中發生,但未在用戶代碼中進行處理。

其他信息:執行命令定義時出錯。有關詳細信息,請參閱內部異常。

跟蹤代碼找到詳細信息:

Entity Framework已有打開的與此Command相關聯的DataReader,必須首先將它關閉。

EF內部是使用DataReader作為資料存取,所以如果沒關閉連接就會產生Error,因為DataReader用同一個Connection。

解決方案有兩種:

1、在連接字符串上面加上MultipleActiveResultSets=true,允許多個鏈接操作。

1 <connectionStrings>
2     <add name="Default" connectionString="Server=.;Database=20171208;User ID=sa;Password=1qaz@WSX;MultipleActiveResultSets=true;" providerName="System.Data.SqlClient" />
3 </connectionStrings>

 2、在進行迭代的時候先取出放置在List中。

1 foreach (var photo in context.Photographs.ToList())
2 {
3        Console.WriteLine("圖像:{0},縮略圖{1}大小", photo.Title, photo.ThumbnailBite.Length);
4 
5         // 使用顯示加載 把
6         context.Entry(photo).Reference(p => p.PhotographFullImage).Load();
7          Console.WriteLine("高分辨率圖像:{0}大小", photo.PhotographFullImage.HighResolutionBits.Length);
8 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM