2014-02-19 2 views
1

multitenancy 시스템에 대해 동일한 테이블 구조를 가진 여러 개의 (제한없는) 데이터베이스 또는 스키마가있는 시스템을 구현해야합니다.동일한 스키마를 사용하여 여러 데이터베이스에 액세스

각 요청에 대해 일종의 데이터베이스/스키마 ID (예 : 임차인 ID)가 제공됩니다. 내가하고 싶은 것은 해당 ID를 기반으로 데이터베이스 또는 스키마를 선택하고 특정 데이터베이스/스키마를 대상으로 내 엔터티 프레임 워크 모델 (코드 첫 번째)에게 알려주는 것입니다. 그런 다음 시스템 (WCF 서비스)은 몇 가지 쿼리를 수행하고 다른 데이터베이스/스키마를 대상으로 다음 호출을 기다립니다. 당연히 여러 요청이 다른 스레드에서 동시에 실행될 수 있으며 엔티티 개체를 사용하여 다른 데이터베이스/스키마에 액세스합니다.

나는 SQL 서버를 사용하고 있는데 세입자의 수는 가능성이

약 5 사이 (50)이 달성 할 수있는 방법이 있나요 될 것인가?

Btw, 스키마와 데이터베이스간에 SQL Server의 차이점이 있습니까? 나는 오라클과 함께 알고 있지만 나는 SQL 서버에 익숙하지 않으며 아직 모든 마이크로 소프트 용어를 완전히 이해하지 못하고있다.

많은 인사말! Volker

+0

[SQL Server] 데이터베이스에 여러 스키마가있을 수 있습니다. 스키마는 단일 데이터베이스 내의 개체의 보안/역할에 대한 논리적 그룹화를 제공합니다. "데이터베이스 스키마"에 대해 이야기하는 것과 동시에 "스키마"에 관해 이야기하는 것은 종종 혼란 스럽습니다. – user2864740

답변

0

예, 가능합니다.

DbContext에는 컨텍스트가 상속되며 ConnectionString 이름 (web.config에 선언 된) 또는 실제 ConnectionString을받는 생성자가 있습니다. 따라서 connectionString을 동적으로 빌드하고 동일한 컨텍스트 유형을 사용하여 다른 데이터베이스에 연결할 수 있습니다.

그러나 Context 인스턴스를 만들면 여러 Context 인스턴스를 동시에 사용하지 않을 것입니다.

이제 시나리오에서 특정 ID를 실제 데이터베이스 이름으로 변환하는 방법에 대해 생각해야합니다. 해당 정보를 보유 할 마스터 데이터베이스와 같은 추가 데이터베이스가 있으면 그렇게 할 수 있습니다.

참고 : EF 마이그레이션을 사용하려면주의하십시오. 올바른 데이터베이스에 마이그레이션을 적용해야합니다.

관련 문제