首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >断续错误与EF核心:连接不支持MultipleActiveResultSets

断续错误与EF核心:连接不支持MultipleActiveResultSets
EN

Stack Overflow用户
提问于 2017-09-04 09:00:39
回答 5查看 18.5K关注 0票数 27

我有一个使用EF的ASP.Net核心应用程序。

我使用ASP.Net标识,并为应用程序的实体共享相同的DBContext。

我已经将连接字符串设置为有MultipleActiveResultSet=True的Azure数据库。

它工作了一两天,但最终由于错误而失败了:

该连接不支持MultipleActiveResultSets。

我不认为火星是真正的问题,因为它起作用了头两天。

我使用ASP.Net核心的内置DI来设置我的DbContext。

代码语言:javascript
运行
复制
services.AddDbContext<AppDbContext>(options =>
  options.UseSqlServer(appDbContextConnectionString));

我的理解是,上述DbContext的默认生存期是短暂的(每个web请求)。

是否可以使用相同的DBContext与ASP.Net身份共享,还是应该为我的应用程序的实体提供一个单独的,指向同一个DB的?

我不知道这是EF核心、ASP.Net核心还是SQL配置的问题。

EN

Stack Overflow用户

发布于 2018-01-08 10:06:16

我也一直遇到这个问题,并且在连接字符串中设置MultipleActiveResultSet=True没有做什么。

我在Startup.cs中的db配置与您所拥有的非常相似:

代码语言:javascript
运行
复制
 services.AddEntityFrameworkSqlServer()
         .AddDbContext<MyDbContext>(options =>
           options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
            builder => builder.MigrationsAssembly("MyProject")),
            ServiceLifetime.Transient
         );

结果是我得到了

该连接不支持MultipleActiveResultSets。

因为我有几个异步db查询访问相同的实体。因此,一个db查询将检索一个实体,另一个查询将通过EF的新Include方法包含相同的实体。还请参见https://stackoverflow.com/a/46164203/4336725

我有几个异步db查询是因为EF目前不支持延迟加载(与EF 6不同)。https://github.com/aspnet/EntityFrameworkCore/issues/3797

我的解决办法是用不同的显式IQueryableThenInclude()定义几个ThenInclude()

票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46033645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档