99

데이터베이스에서 Entity Framework Model (4.0)을 생성했습니다. 필자는 데이터베이스를 설계하지 않았고 스키마를 제어하지 않지만 외래 키 제약 조건이 정의되지 않은 몇 가지 테이블이 있지만 암시 적 관계가 정의되어 있습니다. 예를 들어Entity Framework - 수동으로 탐색 속성 추가

: GenderID RaceID

모두 성별과 인종에 대한 테이블이 있습니다 그러나 사람들의 테이블에 외래 키가 없습니다 :

나는 다음과 같은 열이있는 테이블라는 사람이있다.

모델을 가져 왔을 때 이러한 관계에 대한 탐색 속성이 추가되지 않았습니다. 수동으로 추가하려고했으나 From Role 및 To Role을 사용할 수 없습니다. 나는 관계를 어떻게 추가 할 지 잘 모르겠다. 어떻게해야합니까?

답변

164

예 - 그다지 간단하지 않습니다. 여기

은 당신이 무엇을 : - 마우스 오른쪽 디자이너를 클릭 추가 -

1>협회

2 - 설정 협회 및 카디널리티 (사람 * .. (1 명) 성별, 사람들 * ..1 경주)

- 3 모델 브라우저로 이동 ->협회

4 - 오른쪽, 새로 만든 협회를 클릭 속성

5 클릭 - 다음은 설정에 키와 캐스케이드 옵션에 대한 엔드 포인트가 필요합니다. 엔드 포인트가 올바른지 확인하십시오. 암시 적 탐색 속성에 대해 참조 제한 조건을 설정할 수도 있습니다.

6 - 탐색 속성을 관련 테이블/필드에 매핑하십시오.

7 - 손가락을 교차하여 모델의 유효성을 검사하십시오.

희망이 도움이됩니다.

+18

+1 내 머리카락을 남겨두고 있습니다. # 6은 협회의 속성 페이지에서 참조 제한 조건 설정에서 외래 키 열을 변경해야한다고 추가 할 것입니다. [...] 키를 눌러 참조 제약 조건 대화 상자를 열고 디자이너가 종속 속성에서 자식 테이블에 연결 한 더미 필드를 변경합니다. –

+7

또한 자식 테이블의 속성으로 이동하여 디자이너가 추가 한 더미 필드를 삭제해야합니다 (그리고 자식 테이블의 실제 필드에 매핑되지 않음). –

+1

보기의 경우 기본 키 정의가 올바른지 확인하십시오 (마우스 오른쪽 단추로 관련 필드를 선택하고 속성에서 EntityKey로 표시). 그렇지 않은 경우 종속 관계가 주요 속성 ... ' –

39

this blog post 나는 다음과 같은 해결책을 제안했는데, 그것은 나에게 좋았습니다 (불행히도 RPM1984가 제 상황에서 작동하지 못했습니다).

  1. 바로
  2. 이 협회를 설정 상황에 맞는 메뉴를 클릭 디자이너 배경을 통해 협회를 추가
  3. 클릭에서 속성을
  4. 오른쪽 협회를 클릭하고 선택 (외래 키의 생성을 취소해야합니다) ...
  5. 내 키 사이의 관계를 설정
  6. 참조 제한 조건 (디자이너 상황에 맞는 메뉴에서) 확인을 위해 버튼
  7. ???
  8. 이익!
+3

+1 포인트 4는 내가 RPM194 응답으로 간과 한 것은 맞습니다. –