2010-11-21 4 views
1

다른 여러 게시물을 올바르게 이해하면 동일한 기본 키를 공유하지 않는 엔티티를 둘 이상의 테이블에 매핑 할 수 없습니다.둘 이상의 테이블 (EF4, WCF RiaServices)에 엔티티 매핑 - 국제화

여전히 사실입니까? 내가 궁금해하는 것은 어떻게 국제화가 아래의 DB 디자인과 EF로 처리되어야하는지이다.

텍스트가 별도의 테이블에 저장되는 국제화 된 db가 있습니다. 예 :

CREATE TABLE Product(
ProductID int IDENTITY(1,1) NOT NULL, 
ProductGroupID int NOT NULL, 
... 
CONSTRAINT PK_Product PRIMARY KEY CLUSTERED 
(
ProductID ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY 
) ON PRIMARY 

CREATE TABLE Product_i18n(
ProductID int NOT NULL, 
LanguageID int NOT NULL, 
ProductName nvarchar(150) NULL, 
Description nvarchar(max) NULL, 
... 
CONSTRAINT PK_Product_i18n PRIMARY KEY CLUSTERED 
(
ProductID ASC, 
LanguageID ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY 
) ON PRIMARY 

따라서 제품은 두 개의 테이블로 구성됩니다. Product 테이블에는 언어 독립적 파트가 저장되고 Product_i18n 테이블에는 언어 의존 파트가 저장됩니다. 두 테이블은 실제로 1 : n 연결로 연결되어 있지만 논리적으로는 특정 작업에서 하나의 언어가 필요하기 때문에 1 : 1 연결입니다.

그러므로 나는 열

  • 제품 이름
  • 설명 ...
  • 을의 LanguageID
  • ProductGroupID
    • 제품 ID를 구성 단일 엔티티 제품에 두 테이블을 결합하고 싶습니다

    이렇게하면 가능하다면 국제화 된 테이블을 제 모델에서 지워서 더 명확하게 만들 수 있습니다.

    EF4로 가능합니까? 이 문제를 해결하기위한 국제화에 대한 안내와 경험은 언제나 환영합니다.

    덕분에 많은

    우베

  • 답변

    1

    여전히 문제가있는 경우 나도 몰라,하지만 당신은 더 정확한 제품, 각 언어에 대해 하나의 뷰에 대한 뷰를 사용하여 해결할 수 있습니다.

    +1

    매개 변수화 된보기를 사용할 수 있습니다. 매개 변수화 된보기를 사용하면 새 문화권을 쉽게 추가 할 수 있습니다. –