Entity framework 4 为多个服务器连接创建Dbcontext

Entity framework 4 为多个服务器连接创建Dbcontext,entity-framework-4,dbcontext,Entity Framework 4,Dbcontext,如何在实体框架中为不同的数据库连接手动创建DbContext 首先,您可以在App.Config文件中拥有多个命名连接字符串,如下所示: <connectionStrings> <add name="ToDoConnectionString" connectionString="data source=myLocalBox;initial catalog=ToDoDbCodeFirst2;integrated security=True;MultipleActiveRe

如何在实体框架中为不同的数据库连接手动创建DbContext

首先,您可以在
App.Config
文件中拥有多个命名连接字符串,如下所示:

<connectionStrings>
    <add name="ToDoConnectionString" connectionString="data source=myLocalBox;initial catalog=ToDoDbCodeFirst2;integrated security=True;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
    <add name="StackOverflowEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=StackOverflow;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
现在,在您的主程序中(我使用了控制台应用程序),只需根据您将实体框架(EF)上下文类连接到适当数据库的需要实例化它们,如下所示:

using System.Data.Entity;

namespace EfDevelopment
{
    public class ToDoCodeFirstDbContext : DbContext
    {
        public ToDoCodeFirstDbContext()
           : base("name=ToDoConnectionString")//connection string for 1st DB
        {
        }

        public DbSet<ToDo> ToDos { get; set; }
    }

    public class ToDoCodeSecondDbContext : DbContext
    {
        public ToDoCodeSecondDbContext()
          : base("name=StackOverflowEntities")//connection string for 2nd DB
        {

        }

        public DbSet<ToDo> ToDos { get; set; }
    }
}
class Program
{
        static void Main(string[] args)
        {
              using (var db = new ToDoCodeFirstDbContext())
              {
                  //write your code here for first DB connection
              }

              using (var db = new ToDoCodeSecondDbContext())
             {
                  //write your code here for second DB connection
             }
        }
  }