我有一个使用EF的ASP.Net核心应用程序。
我使用ASP.Net标识,并为应用程序的实体共享相同的DBContext。
我已经将连接字符串设置为有MultipleActiveResultSet=True的Azure数据库。
它工作了一两天,但最终由于错误而失败了:
该连接不支持MultipleActiveResultSets。
我不认为火星是真正的问题,因为它起作用了头两天。
我使用ASP.Net核心的内置DI来设置我的DbContext。
services.AddDbContext<AppDbContext>(options =>
  options.UseSqlServer(appDbContextConnectionString));我的理解是,上述DbContext的默认生存期是短暂的(每个web请求)。
是否可以使用相同的DBContext与ASP.Net身份共享,还是应该为我的应用程序的实体提供一个单独的,指向同一个DB的?
我不知道这是EF核心、ASP.Net核心还是SQL配置的问题。
发布于 2018-08-23 13:04:38
我有一个类似的问题,我发现问题是,我错过了等待陈述在我的方法面前。
FetchStuffFromDBAsync();变成:
await FetchStuffFromDBAsync();问题就消失了。
发布于 2018-08-26 03:23:25
MultipleActiveResultSets=True需要添加连接字符串。
string connectionString = "Data Source=MSSQL1;Initial Catalog=AdventureWorks;Integrated Security=SSPI;MultipleActiveResultSets=True"; 发布于 2019-09-05 06:41:37
多活动结果集(MARS)是一种与Server一起工作的特性,允许在单个连接上执行多个批处理。启用MARS用于Server时,所使用的每个命令对象都会向连接添加一个会话。
默认情况下,MARS功能被禁用。
您可以像下面这样启用它。
string connectionString = "Data Source=MSSQL1;" +   
    "Initial Catalog=AdventureWorks;Integrated Security=SSPI;" +  
    "MultipleActiveResultSets=True";  https://stackoverflow.com/questions/46033645
复制相似问题