2014-03-06 2 views
2

이것은 내 MVC 프로젝트입니다. 저는 엔티티 프레임 워크 5를 사용하고 있습니다. 하나의 주요 클라이언트 데이터베이스 script.With 나는 단지 다른 데이터베이스 이름으로 많은 클라이언트 데이터베이스를 만들 수 있습니다. 이제 그 클라이언트에 대한 엔티티 프레임 워크 모델을 가지고 한 엔터티 프레임 워크 내가 다른 데이터베이스와 동적으로 연결해야합니다. 하나의 텍스트 상자에서 데이터베이스 이름을 얻을거야. 나는 그것에 대해 web.config 및 데이터베이스 이름을 변경 연결 문자열을 알아.하지만 난 찾을 수 없습니다 "SqlConnectionStringBuilder"도 시도해 보았습니다. web.config에서 하나의 연결 문자열 만 사용해야하고 주 클라이언트 데이터베이스에서는 하나만 사용해야합니다. 여기 하나의 엔티티 프레임 워크를 사용하여 여러 데이터베이스에 동적으로 연결하는 방법.

내 Web.config의 연결 문자열 여기

<add name="SBAClientEntities" connectionString="metadata=res://*/Models.ClientModel.csdl|res://*/Models.ClientModel.ssdl|res://*/Models.ClientModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=USER-PC\SQL2012SERVER1;initial catalog=SBAClient;persist security info=True;user id=sa;password=sa12345;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

내 개체 모델 컨텍스트 클래스 다음

public partial class SBAClientEntities : DbContext 
{ 
    public SBAClientEntities() 
     : base("name=SBAClientEntities") 
    { 
    } 
    public SBAClientEntities(string databaseName) 
     : base("name=SBAClientEntities") 
    { 
    } 


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

    public DbSet<CM_Customer_UISetings> CM_Customer_UISetings { get; set; } 
} 

이 저장소

using (SBAClientEntities db1 = new SBAClientEntities(databaseName)) 
     { 
      CusFontViewModel obj = new CusFontViewModel(); 

      var result = from c in db1.CM_Customer_UISetings 
         select c; 
      obj.itemList = result.ToList(); 
      return obj; 
     } 

답변

1
SBAClientEntities dbWILLBECHANGED = new SBAClientEntities(); 
dbWILLBECHANGED.Database.Connection.Open(); 
dbWILLBECHANGED.Database.Connection.ChangeDatabase(DatabaseNEWName); 
에 데이터베이스와 연결하는 코드입니다
+0

감사합니다. 네가 내 시간을 구했어. –

관련 문제