文章内容

2017/6/19 9:59:18,作 者: 黄兵

“System.Data.Entity.Core.EntityCommandExecutionException”类型的异常在 EntityFramework.SqlServer.dll 中发生

“System.Data.Entity.Core.EntityCommandExecutionException”类型的异常在 EntityFramework.SqlServer.dll 中发生,但未在用户代码中进行处理

其他信息: 执行命令定义时出错。有关详细信息,请参阅内部异常。

找到详细:

entity framework中 已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。

EF內部是使用DataReader作資料存取,所以如果如下就會產生Error,因為DataReader用同一個Connection.

處理方式有兩種
1,設定ConnectionString加上MultipleActiveResultSets=true,但只適用於SQL 2005以後之版本
2.先讀出放置在List中
foreach(Employee emp in context.Employees.ToList())
{
  emp .Customer .... //通過,因emp這時候已經不是context中的參考物件,而是獨立的instance,與context脫鉤
}

分享到:

发表评论

评论列表