在一个应用程序中使用多个dbContext

时间:2013-12-10 12:28:10

标签: asp.net-mvc entity-framework entity

我正在努力在ASP.NET MVC 5中使用多个dbContext与单个Web应用程序。我遵循代码第一个现有的数据库设计方法。

我需要指南如何在示例中说如果我使用ADO.NET创建5个模型,它将创建5个dbContext及其模型类。

它将如何在web.config文件中更改?

非常感谢

 public partial class DefaultContext : DbContext
{
    public DefaultContext()
        : base("name=DefaultContext")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public virtual DbSet<AspNetRole> AspNetRoles { get; set; }
    public virtual DbSet<sys_Actions> sys_Actions { get; set; }
    public virtual DbSet<sys_ActionsInRole> sys_ActionsInRole { get; set; }
    public virtual DbSet<sys_Controllers> sys_Controllers { get; set; }
    public virtual DbSet<sys_Functions> sys_Functions { get; set; }
    public virtual DbSet<sys_FunctionsHierarchy> sys_FunctionsHierarchy { get; set; }
}

1 个答案:

答案 0 :(得分:1)

基本上对于每个dbContext,您需要在web.config文件的connectionStrings部分中添加具有唯一名称的新连接字符串

这是一个例子:

<connectionStrings>
    <add name="dbContext1" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=dbServer;initial catalog=db1;integrated security = true;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    <add name="dbContext2" connectionString="metadata=res://*/Model2.csdl|res://*/Model2.ssdl|res://*/Model2.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=dbServer;initial catalog=db1;integrated security = true;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>