在本地开发时,我有一个连接字符串集,其 MultipleActiveResultSets 设置为 TRUE。但是,当我部署我的应用程序并注入(inject) sequelizer connectionString 时,MultipleActiveResultSets 被排除在外。无论如何启用 MultipleActiveResultSets 或以其他方式更新连接字符串?
顺便说一下,我正在使用 Entity Framework 4.1。
最佳答案
更新:现在可以使用 Sequelizer 管理面板为注入(inject)的连接字符串启用多个事件结果集 (MARS)。这是推荐的方法,因为不再需要修改 web.config
,这会导致 AppDomain
在启动期间重新加载
您可以从注入(inject)到您的应用程序 web.config
中的 URI 构建连接字符串。过程描述here ,但我也包括以下代码段:
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
。
如果您还需要构建一个非代码优先的连接字符串,则您需要为其余部分使用 EntityConnectionStringBuilder
,例如:
var builder = new EntityConnectionStringBuilder();
builder.ProviderConnectionString = connectionString;
builder.Metadata = "somemetadata";
builder.Provider = "System.Data.SqlClient";
关于c# - 如何在带有 sequelizer 附加组件的 appharbor 上运行的应用程序中启用 MultipleActiveResultSets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8609651/