2009-06-07 7 views
3

엔티티 집합을 매핑하는 데 TPH (테이블 당 계층 구조) 기술을 사용하고 있습니다.Entity Framework - 파생 된 엔티티와의 연결

DB 스키마 : UserGroupLabelSpreads "UserId", "GroupId"및 "LabelId"nullable 필드에 몇 가지 추가 공통 필드가있는 테이블.

DAL 개체 : - UserGroupLabelSpread 추상 클래스입니다. - null이 아닌 UserId 만있는 식별자가있는 UserSpread. - GroupSpread에는 null이 아닌 GroupId 만있는 식별자가 있습니다. - LabelSpread에는 null이 아닌 LabelId 만있는 식별자가 있습니다.

나는이 일을 처리 할 수 ​​있었지만 UserSpread 엔티티를 기존 "User"엔티티에 연결하려고하면 다음 오류가 발생합니다. 오류 3034 : 조각 매핑에 문제가 있습니다. 라인 487, 554에서 시작 : 서로 다른 키를 가진 두 엔티티가 같은 행에 매핑됩니다. 이 두 매핑 조각이 중복 키가있는 두 엔티티 그룹을 동일한 행 그룹에 매핑하지 않도록하십시오.

나는 UserId 열을 두 번 매핑한다는 문제가 있다는 것을 알기 위해 주위를 파고 들었습니다. 한 번은 판별 자 조건에, 두 번째는 연관에 대한 것입니다.

내 가정에 맞습니까? 이 물건을 작동시킬 수 있을까요?

감사합니다. Nir.

+1

죄송 정확한 오류 : 매핑 파편의 문제가 배선 (242), (272)에서 시작 : 비 기본 키 컬럼 (들)의 UserId 상이한 개념적으로 두 조각으로 매핑되고 \t 1 \t는 오류 3007 오류 측면 속성 - 해당 개념적 측면 속성을 독립적으로 수정할 수 있기 때문에 데이터 불일치가 발생할 수 있습니다. – nirpi

답변

2

당신을 도울 수있는 EDM Generator의 업데이트 된 버전이 있습니다. 이를 사용하여 생성, 유효성 검사 등을 할 수 있습니다. 죄송합니다. 잘못된 링크가 있습니다. Here is the one to v2. 나는이 문제를 안고 있다고 생각한다. 내가 잘못 본 것이 아니라면 forreign 키를 잘못 매핑했기 때문입니다. 나는 그 당시 EF4의 베타 1을 사용하고 있었고 프록시들 때문에 메시지의 일부가 잘못되었다. 확인 키를 확인하십시오. Blog.Id ---> Blog_id가 내 문제였습니다. 나는 Blog.Id -> Blog.Id를 가지고 있었고 BlogEntry.Id ----> Blog.Blog_Id는 물론 작동하지 않지만 디자이너는 키 매핑에 관해서는 용서하지 않습니다.