c# - 如何在带有 sequelizer 附加组件的 appharbor 上运行的应用程序中启用 MultipleActiveResultSets?

标签 c# asp.net-mvc entity-framework entity-framework-4.1 appharbor

在本地开发时,我有一个连接字符串集,其 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";

(也为 answered on the AppHarbor support forum)

关于c# - 如何在带有 sequelizer 附加组件的 appharbor 上运行的应用程序中启用 MultipleActiveResultSets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8609651/

相关文章:

c# - 数据库(模式)管理库

c# - ASP.NET Core 2.1 将 json 列表传递给 ajax

asp.net-mvc - Ninject 如何在 ASP.NET MVC 中创建 Controller ?

asp.net-mvc - 没有任何 ORM 的 ASP.NET MVC 4 项目

c# - EntityFramework - 包含复合键的查询

c# - ' Entity Framework 6.1。 3' already installed. Failed to add reference to ' System.ComponentModel.DataAnnotations'

c# - 我的自定义 C++ DLL 的 C# 项目中的 DLLImport 有什么问题?

C#:如何在一个文件中读取 'éóú' 和 öäü 等字符?

c# - 服务器发送 dateTime 对象,客户端应将其打印到 UI

mysql - 防止MySQL中的重复记录