2010-11-22 9 views
3

외래 키 속성없이 모든 관계가 연결로 정의되어있는 상당히 큰 Entity Framework 4 모델 (모델 우선)이 있습니다.EF4; 모델에 외래 키 추가

다이어그램을 처음부터 다시 만들거나 수동으로 추가하는 것 이외의 방법으로 전체 다이어그램에 FK 속성을 추가하는 방법을 아는 사람이 있습니까?

데이터베이스를 생성 한 다음 데이터베이스에서 새 모델을 만든 다음 더 좋은 제안이 없으면 정리를 진행하는 것이 좋습니다.

나는 XML을 조정하기 위해 뭔가를 쓰는 것이 다른 방법이라고 생각합니다.

+0

업데이트 - 마지 못해 이것을 수동으로 수행했습니다. 누군가가 더 나은 방법을 알고있는 경우에 대비하여 질문을 열어두면 누구나 후회 적으로 FK를 추가하려는 마지막 시간이 아닐 것이라고 확신합니다. – RichardW1001

+1

나는 이런 일이 나에게도 일어났습니다. 저는 그것에 좌절감을 가지게되었고 Model-First 접근법을 포기하고 내 솔루션에 데이터베이스 프로젝트를 만들었습니다. 스키마에서 시간이 지남에 따라 데이터베이스를 마이그레이션하면 솔루션에서 데이터베이스 스키마를 사용하면 쉽게 마이그레이션 할 수 있습니다. –

답변

0

XML을 조작하는 코드를 작성하면 필요한 것을 얻을 수 있지만, 나중에 다시 사용할 수있는 것이 아니라면 디자이너에서 직접 수동으로 작업하는 것이 좋습니다. 당신이 할 시간이 있다면 Entity Framework DSL의 내부 동작을 배우는 훌륭한 방법이라는 것을 알게 될 것입니다. 내 경험에 의하면 스키마가 생겨나 고 나서 모델을 변경하려고 할 때 유용합니다.

0

여기에 내가 수행 한 단계입니다 :

  1. 적절한 형태의 스칼라 속성 (예 : "제품"의 "카테고리 ID") 종속 기업
  2. 지도를 추가하는 데이터베이스에 적절한 열을 특성 디자이너의 매핑 창 사용
  3. 연결을 편집하면 연결에 참조 제한을 추가해야합니다. 속성 창을 통해 그렇게 할 수 있습니다. 주체는 참조하는 엔터티 (즉, "범주")이고 종속자는 다른 것 (즉, "제품")이됩니다
  4. 이것은 모두 필요한 것입니다. 해당 파일을 "유효성을 검사"하면 기존 연결 집합 매핑에 대해 불만을 표시하는 EF 오류가 표시됩니다. 이는 해당 매핑에 대해 현재 두 가지 전략이 존재하기 때문입니다. 이 파일을 삭제해야합니다. 내가 할 수있는 유일한 방법은 XML 파일을 여는 것뿐이었습니다. VS가 squigglies로 해당 지역을 강조 표시합니다. 그냥 그 노드를 삭제하고 당신은 잘 가게됩니다.