在注册为作用域时共享DBcontext

时间:2019-04-19 13:09:45

标签: c# asp.net-core entity-framework-6 ef-core-2.2

我正在尝试从ef6迁移到ef core,并开始解决以下问题

  

System.InvalidOperationException:'在上一个操作完成之前,第二个操作在此上下文上开始。这通常是由使用同一DbContext实例的不同线程导致的,但是不能保证实例成员是线程安全的。如果是这种情况,也可能是由于在客户端上评估了嵌套查询而引起的,如果是这种情况,请重写查询以避免嵌套调用。'

上:

_dbContext
    .Query<EntityModel>()
    .FromSql(query, new SqlParameter("@userId", userId))
    .ToList();

1 个答案:

答案 0 :(得分:1)

我通过在连接字符串中添加MultipleActiveResultSets = true来解决此问题。

示例:

string connectionString = "Data Source=MSSQL1;" +   
  "Initial Catalog=AdventureWorks;Integrated Security=SSPI;" +  
  "MultipleActiveResultSets=True";

发件人:https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/enabling-multiple-active-result-sets

只需将其添加到您的appsettings.json连接字符串中