1

나는 다른 테이블 데이터와 함께 동일한 테이블 구성표를 사용하는 2 개의 Azure 데이터베이스 서버를 보유하고 있습니다. 나는이 같은 내 첫 번째 DB와 연결 내 asp.net 사이트에서
:

의 Web.configASP.net 다중 데이터베이스 링크

<add name="FirstDBContext" connectionString="..." providerName="..." /> 

DatabaseContext.cs

DatasController.cs

private UsersContext db = new UsersContext(); 
public ViewResult Index() 
{ 
    return View(db.Datas.ToList()); 
} 

당신이 볼 수 있듯이 나는 코드에 내 db 세트를 가지고있다. 예를 들어 드롭 목록으로 한 DB에서 다른 DB로 동적으로 변경할 수 있도록하려면 어떻게 변경합니까?

고맙습니다.

당신이

<add name="csFirstDB" connectionString="..." providerName="..." /> 
<add name="csSecondDB" connectionString="..." providerName="..." /> 

당신은

public class UsersContext : DbContext { 
    public UsersContext (string connectionName) : base(connectionName){ } 
} 

에 UsersContext을 변경할 수 있습니다 연결 stirngs을 다음과 같은 경우 예를 들어, UsersContext

을 초기화 할 때 당신은 연결 문자열의 이름을 전달할 수 있습니다

답변

0

감사합니다. 좋은 아이디어입니다. 너에게 정확하게 대답 해줄거야. 이제 대상 db를 변경할 수 있으며 항목을 나열 할 수 있습니다. 하지만 항목에 대한 세부 정보를 원하면 오류가 반환됩니다.
내가 테스트를 위해이 :

private UsersContext db = new UsersContext("db1"); 

public ViewResult Index() 
{ 
    db = new UsersContext("db2"); 
    return View(db.Users.ToList()); 
} 

이 좋은 DB2의 목록을 반환하지만 난 세부 사항에 갈 때 그것은 실패하고 오류를 반환합니다.Changing dbContext at runtime

: 여기

문제의 답이다
1

이제 UsersContext 클래스 객체를 초기화 할 때 연결 문자열 이름을 전달하면 해당 특정 db를 참조하게됩니다.