2009-12-18 2 views
12

회사의 대규모 데이터베이스를 다시 설계하면 데이터베이스에서 복합 기본 키가 광범위하게 사용됩니다.Entity Framework 4.0이 포함 된 복합 DB 키

성능 영향을 잊어 버리면 Entity Framework 4.0에서이 db로 작업 할 때 어려움이 있습니까? 데이터베이스 구조가 바뀔 것 같지 않고 "철학적"토론을 찾고있는 것이 아니라 실제적인 영향은 무엇입니까?

Jeremy Miller에 따르면 "복합 키는 모든 종류의 개체/관계형 매핑과 지속성을 일반적으로 어렵게 만듭니다." 그러나 그는 왜 그런지 말하지 않습니다. Entity Framework 4.0이 키를 처리하는 방법과 관련이 있습니까?

답변

13

아니요, EF4는 복합 키를 올바르게 지원합니다.

문제는 서로 게이트와 복합 키가있는 테이블입니다. 각 모델에는 하나의 키만 설정할 수 있습니다. 그 키는 여러 개의 필드를 가질 수 있지만 디자이너 입장에서는 하나만 가질 수 있습니다. XML 또는 코드 만 매핑을 수동으로 편집하는 것에 대해서는 확실하지 않습니다.

동일한 테이블에서 복합 및 대리 키가 필요한 경우 필드를 ID가 아닌 키로 설정할 수 있습니다. Identity (Id) 필드는 ObjectContext 또는 ObjectStateTracker에 의해 사용되지 않지만 증분되며 질의 가능합니다.

8

EF4 및 복합 키에 문제가있었습니다. 조인 테이블의 둘 이상의 키에서 구성 요소로 사용되는 열을 지원하지 않습니다.

자세한 내용은 이전 질문 (Mapping composite foreign keys in a many-many relationship in Entity Framework)을 참조하십시오. 그것의 너트는 관계 모두 공통 키를 사용하여 조인 테이블 (A 많은 많은 관계를 기술하는)이있을 때, 당신은

오류 3021 같은 오류가 발생합니다 있다는 것입니다 : 매핑 의 문제 단편 ... 표 페이지 뷰의 다음 열의 각 여러 개념적 측면 속성에 매핑된다 PageView.Version는 (PageView_Association.View.Version, PageView_Association.Page.Version)

에 매핑

유일한 방법은 복제하는 것이 었습니다. 그 칼럼은 거기에 그것을 가지고있는 목적을 무효로합니다.

행운을 빈다.

+6

어색한 성가신. –

관련 문제