相关疑难解决方法(0)

SQL Azure +出现错误'已经有一个与此命令关联的开放DataReader ..',即使在设置'MultipleActiveResultSets = True'之后

我们在云上部署的应用程序版本面临一些问题.

我们的应用程序是一个带有ADO .NET实体框架的ASP.NET MVC 3项目.

根据msdn博客,我们需要在我们正确完成的数据库连接字符串中添加参数'MultipleActiveResultSets = True'(对于带有SQL azure的实体框架).

从我们的应用程序执行数据库查询时,我们得到以下异常:''已经有一个与此命令关联的开放DataReader必须先关闭.",我猜这与'MultipleActiveResultSets = True'属性非常相关.

通过本地部署的数据库以及使用SQL azure数据库(在本地环境中),应用程序在本地环境中正常工作.

但是当我们部署云应用程序时,我们会得到上述错误.似乎没有从连接字符串中读取"MultipleActiveResultSets = True"属性.

我使用的连接字符串如下:

    <connectionStrings>
        <add name="#DBInstanceName#" connectionString="Data Source=tcp:#server#.database.windows.net,1433;Initial Catalog=#DBName#;User ID=”UserName#@#server#;Password=”#password#”;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我能够使用本地部署的应用程序中的上述连接字符串连接到SQL Azure数据库,没有任何例外.但是,使用相同的连接字符串在云上部署时,相同的应用程序会给我上述错误.

你能帮我们修理一下吗?

asp.net-mvc azure azure-sql-database

25
推荐指数
3
解决办法
7323
查看次数

获取连接在forEach中使用Dapper.SimpleCRUD时不支持MultipleActiveResultSets

我有以下代码:

var test = new FallEnvironmentalCondition[] {
    new FallEnvironmentalCondition {Id=40,FallId=3,EnvironmentalConditionId=1},
    new FallEnvironmentalCondition {Id=41,FallId=3,EnvironmentalConditionId=2},
    new FallEnvironmentalCondition {Id=42,FallId=3,EnvironmentalConditionId=3}
};
test.ToList().ForEach(async x => await conn.UpdateAsync(x));
Run Code Online (Sandbox Code Playgroud)

我得到了

InvalidOperationException:连接不支持MultipleActiveResultSets

我不明白我await正在进行每次更新,所以为什么我会收到此错误.

注意:我无法控制连接字符串,因此无法打开MARS.

c# sql-server foreach dapper dapper-simplecrud

6
推荐指数
4
解决办法
2万
查看次数