数据库上下文在注册为作用域时共享



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

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

上:

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

我通过将MultipleActiveResultSets=true添加到连接字符串中解决了一次这个问题。

例:

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

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

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

相关内容

  • 没有找到相关文章

最新更新