저는 L2E에서 3 개의 간단한 테이블로 작업하고 있었는데 그 목적은 매우 간단했습니다 : Users, Users_Roles, Roles.VS 2008의 엔티티 디자이너는 평범하지 않습니까?
사용자는 사용자 ID (uniqueidentifier) 열에서 참조되는 Users_Roles와 1 : 많은 관계를 가졌습니다. 당시 롤은 어떤 테이블과도 관계가 없었습니다. 디자이너가 3 개의 테이블을 모두 가져 와서 사용자가 Users_Roles에 매핑 한 것을 반영하고 역할은 모두 자체적으로 앉았습니다.
실현하는 역할은 많은 : 많은 관계에서 Users_Roles에 매핑되어야하며, 나는 경영 스튜디오로 뛰어 들었다. 나는 역할에서 Users_Roles로 관계를 때리고 그것을 저장했다. 그런 다음 VS로 다시 뛰어 들었고 내 논리에서 논리적 인 단계를 밟았습니다. "데이터베이스에서 모델 업데이트"를 마우스 오른쪽 버튼으로 클릭하여 엔터티 모델을 업데이트하려고했습니다. 업데이트 목록에 세 개의 테이블이 모두 표시되었습니다. 업데이트 후 시각적 인 관계는 변하지 않았습니다. 나는 어떤 변경 사항이 있는지 확인하기 위해 다시 컴파일하려고하지만 줄 번호에 서로 다른 두 가지 오류 접수 :
Error 3 Error 3034: Problem in Mapping Fragments starting at lines 177, 192: Two entities with possibly different keys are mapped to the same row. Ensure these two mapping fragments map both ends of the AssociationSet to the corresponding columns. C:*\Model1.edmx 178 15 MVCTestApp
아무 소용 오류를 디버깅하는 시도를. 결국 좌절감을 느끼고 모델을 삭제하고 다시 작성했습니다. 그 관계는 인정 받았고, 디자이너는 적절히 업데이트되었고, 인생은 좋았습니다.
나는 디자이너를 밖에 데리고 매장하기를 원했던 것은 처음이 아니다 : 일주일 정도 전에 나는 테이블을 삭제할 신경이 있었고, 테이블을 삭제하는 것이 매우 빨리 배웠다. 디자이너 만 디자이너에서 삭제합니다. 그 매핑은 유지됩니다.
그래서 몇 가지 질문 :
)이 동작은 VS 2008로 제한됩니까? 나는 내장 실제로 작동 디자이너,
3) 방법가 거기
2) 대체 할 수있다 다른 도구, 곧 2010있을 것이다, 예상대로 디자이너 기능을 기대하는거야 모델 업데이트를 실제로 업데이트합니다. 아마도 전체 모델을 삭제하는 것 외에는 인식하지 못하는 트릭 일 수도 있습니다. 수동으로 설정 한 다른 모든 관계를 잃어 버릴 수도 있습니다.
이해할 수 있듯이 Entity Framework 4.0 (VS2010에서 사용 가능)은 기능과 성숙도면에서 nHibernate보다 조금 뒤떨어져 있지만 크게 향상되었습니다. –