在本地开发时,我设置了一个连接字符串,其中 MultipleActiveResultSets 设置为 TRUE。但是,当我部署我的应用程序并且注入了续集器 connectionString 时,MultipleActiveResultSets 被忽略了。无论如何要启用 MultipleActiveResultSets 或以其他方式更新连接字符串?
顺便说一句,我正在使用 Entity Framework 4.1。
在本地开发时,我设置了一个连接字符串,其中 MultipleActiveResultSets 设置为 TRUE。但是,当我部署我的应用程序并且注入了续集器 connectionString 时,MultipleActiveResultSets 被忽略了。无论如何要启用 MultipleActiveResultSets 或以其他方式更新连接字符串?
顺便说一句,我正在使用 Entity Framework 4.1。
更新:现在可以使用 Sequelizer 管理面板为注入的连接字符串启用多个活动结果集 (MARS)。这是推荐的方法,因为web.config
不再需要修改,这会导致AppDomain
启动期间重新加载
您可以从注入应用程序的 URI 构造连接字符串web.config
。此处描述了该过程,但我也包括以下代码段:
var uriString = ConfigurationManager.AppSettings["SQLSERVER_URI"];
var uri = new Uri(uriString);
var connectionString = new SqlConnectionStringBuilder
{
DataSource = uri.Host,
InitialCatalog = uri.AbsolutePath.Trim('/'),
UserID = uri.UserInfo.Split(':').First(),
Password = uri.UserInfo.Split(':').Last(),
MultipleActiveResultSets = true,
}.ConnectionString;
注意MultipleActiveResultSets = true
.
如果您还需要构建非 Code-First 连接字符串,则需要使用 aEntityConnectionStringBuilder
其余部分,例如:
var builder = new EntityConnectionStringBuilder();
builder.ProviderConnectionString = connectionString;
builder.Metadata = "somemetadata";
builder.Provider = "System.Data.SqlClient";