2012-01-03 2 views
0

나는 다음과 같은 테이블이는 :수동 엔티티 프레임 워크 협회

Table Group (
    id INT PK, 
    year INT PK, 
    name VARCHAR 
) 

Table Person (
    id PK, 
    GroupID INT, 
    name VARCHAR 
) 

데이터베이스 그래서이 사람이 테이블 그룹 테이블 id-GroupID에서 수동 연결을 만들려면 정의 된 외래 키가 없습니다.

이렇게하려면 Person (사람)을 마우스 오른쪽 단추로 클릭하고 연관성을 추가하십시오. 나는 many to one 협회를 만들고 모든 것이 효과가있다. 문제는 매핑을 추가 할 때입니다. Group 테이블에는 두 개의 기본 키가 있기 때문에 엔티티 프레임 워크는 Person 테이블에서 year 키로 매핑하는 것이 었습니다.

연결을 만들려면 어떻게해야합니까?

답변

0

EF는 데이터베이스와 동일한 규칙을 따르므로 이러한 연결을 만들 수 없습니다. 주체 엔티티의 모든 PK 열은 종속 엔터티에 FK 열로 존재해야합니다.

유일한 방법은 ID와 이름이있는 고유 한 그룹을 선택하고 읽기 전용 엔티티로 매핑 된 데이터베이스 뷰일 수 있으며 그 둘 사이에서 네비게이션을 빌드 할 수 있습니다. 나는 그것을 시도하지 않았지만 그것이 효과가 있다고 생각한다. 그룹에 대해 완전히 관련없는 두 개의 엔티티가 있고 사람과 관련된 엔티티가 수정을 허용하지 않기 때문에 (사용자 정의 SQL 명령 또는 삽입 조작, 갱신 및 삭제 조작에 대한 맵핑없이) 단점이 있습니다.