2011-04-19 9 views
1

데이터베이스를 SQL Azure로 마이그레이션하려고하지만 Azure의 가격 모델이 SQL 2k8R2의 가격 모델과 다르므로 (분명히) 우리 데이터베이스의 구조를 다시 생각해야합니다. 지금 당장의 구조는 고객 당 하나의 데이터베이스이지만 Azure를 사용하면 용량의 일부만을 사용할 수도 있지만 데이터베이스 당 지불해야합니다 (10MB 범위 내). 이것은 우리에게 문제가됩니다. 가장 쉬운 해결책은 모델의 각 테이블에 고객 고유 식별자를 접두사로 사용하는 것입니다. 런타임에 매핑을 변경하는 방법이 있습니까? 아니면이 시나리오가 Azure에 맞지 않습니까? Entity Framework 4, SQL Azure, 고객 당 하나의 DB 또는 테이블 접두사?

나는 몇 주 전에 비슷한 질문을하지만, 확실히 동일하지 : Change table name at runtime using Entity Framework 4

편집 : 나는 SQL 애저에서 연합을 시도했지만 아직 살아있는 될 것 같지 않습니다. 필자가 생각해 볼 수있는 해결책은 하나의 DB에 여러 고객을두고 파트를 지원하는 것입니다. 우리의 저장소는 지금 이미 특정 고객에 대한 실체를 분리해서하기 포함 된 경우-FUNC와 IQueryables 노출되어

public IQueryable<TestEntity> 
{ 
    get 
    { 
     return _ctx.Set<TestEntity>().Where(entity => entity.CustomerId == _customerId); 
    } 
} 

답변

3

당신은 스키마를 사용하여 고려할 수 있습니다. 스키마,이 사용자 소유 - -이 로그인 에 매핑 사용자 - 서버 에 로그인 - 당신은 사용자

의 기본 하나로서 스키마를 정의 : 각 고객에 대한

, 당신은 만들

[schema]. [objectname] 표기법을 사용하지 않고 [objectname] 표기법 만 사용하는 경우 기본 스키마가 사용됩니다.

분명히 완벽한 해결책은 아니지만 작동해야합니다.