4

在本地开发时,我设置了一个连接字符串,其中 MultipleActiveResultSets 设置为 TRUE。但是,当我部署我的应用程序并且注入了续集器 connectionString 时,MultipleActiveResultSets 被忽略了。无论如何要启用 MultipleActiveResultSets 或以其他方式更新连接字符串?

顺便说一句,我正在使用 Entity Framework 4.1。

4

1 回答 1

7

更新:现在可以使用 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";

(也在AppHarbor 支持论坛上回答

于 2011-12-23T08:00:20.093 回答