2010-04-12 7 views
1

서로 연결되어 있지 않은 여러 그룹의 사람들을 위해 만들어진 웹 응용 프로그램이 있습니다. 모든 데이터베이스에 하나의 데이터베이스를 사용하는 대신 별도의 데이터베이스를 만들려고합니다.하나의 응용 프로그램에서 여러 데이터베이스 사용

이렇게하면 쿼리 속도가 빨라지고 사용자가 속한 그룹을 확인할 필요가 없습니다.

하지만 LINQ to SQL을 사용하기 때문에 클래스가 데이터베이스와 명시 적으로 연결되어 있으므로 모든 데이터베이스에 대해 별도의 DataContexts을 만들어야합니다.

그럼이 문제를 어떻게 해결할 수 있습니까? 아니면 단지 하나의 데이터베이스 만 사용하면 안됩니까?

+0

다른 고객 (또는 사용자)이 동일한 애플리케이션입니까? 멀티 테넌시 (multi tenancy)가 귀하가 찾고있는 것일 수 있습니다 http://msdn.microsoft.com/en-us/library/aa479086.aspx – uvita

답변

3

데이터베이스 스키마가 동일하면 간단히 각 데이터베이스의 연결 문자열을 변경하면 충분합니다. 반드시 다른 컨텍스트를 만들 필요는 없습니다.

다른 문제는 이미 스택 오버플로에있는 multi-tenancy Asp.NET MVC questions에 대한 기존 답변을 검토하여 해결할 수 있습니다.

1

은 귀하의 질문에 대답의 핵심은 당신이 무슨 뜻인지에 달려

"내 수업 명시 적으로 데이터베이스와 연결되어있다". 응용 프로그램을 어떻게 든 특정 데이터베이스에 의존하도록 하드 코딩하고 모든 객체가 동일한 연결 문자열을 사용하여 자신의 datacontext를 만들도록 하드 코드 된 경우 많은 리팩토링을해야합니다.

Repository Pattern을 사용하여 DataContext를 중앙 집중화 한 경우 조건부로 하나의 데이터베이스 또는 다른 데이터베이스에 대한 DataContext를 만들고이를 객체에 전달하는 데는 몇 줄의 코드 만 있으면됩니다.

그럼 어떻게 컨텍스트를 구현했는지가 중요합니다.

관련 문제