2016-09-02 9 views

ответ

1

Сначала вы можете иметь несколько именованных строк соединения в 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> 

Теперь вы можете определить два различных пользовательских классов, унаследованных от DbContext класса, как показано ниже:

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; } 
    } 
} 

Теперь внутри ваша основная программа (я использовал консольное приложение) просто создала экземпляр соответствующих классов контекста Entity Framework (EF) в соответствии с вашей необходимостью подключения их к соответствующей базе данных, как показано ниже:

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 
      } 
     } 
    }