2011-09-06 2 views
12

데이터베이스에서 모델을 가져 오는 데 ADO .NET 엔터티 프레임 워크를 사용하고 있습니다. 내 DB에있는 테이블에는 외래 키가 많이 있는데, 모두 추상 이름을 사용합니다. FKDevice132610.Entity Framework를 사용하는 탐색 속성의 의미있는 이름

모델을 내 모델로 가져 오면 각 외부 키에 대한 탐색 속성이 표시되지만 링크 된 테이블 이름을 기반으로 이름이 가져옵니다. 특정 테이블에 둘 이상의 외부 키가있는 경우 끝에 숫자가 추가됩니다.

Ef model

이 경우 장치 1은 ParentDevices이고 Devices2는 ChildDevices이다. Entity Framework에서 내 탐색 속성에 의미있는 이름을 가져올 수 있도록이 정보를 외래 키에 입력 할 수있는 방법이 있습니까 (설명 또는 이름 사용).

답변

5

제가 알기로 현재로서는 그렇게 할 방법이 없습니다. 이것이 현재의 디자이너가 작동하는 방식입니다. 데이터베이스에서 모델을 업데이트하는 이름을 수정하기 위해 이러한 속성의 이름을 바꾸면 변경 사항을 덮어 쓰게됩니다. 탐색 속성 이름의

개선이 작업 항목에 의해 추적 - http://entityframework.codeplex.com/workitem/125

+3

그것은 절름발이입니다 ... 바보 같은 EF :( – link664

+3

이 경우 EF의 실패가 아닙니다. 디자이너의 실패입니다. 디자이너 없이도 EF를 사용할 수 있습니다. 수동으로 XML 매핑을 작성합니다. –

0

"modelBuilder.Conventions.Remove"를 검색하면 해결책이 될지 궁금해합니다. 도움이 될 수 있으면 좋겠지 만 EF를 탐험하기 시작했습니다. 동일한 ID로 다시 참조하는 여러 필드가있을 때 비슷한 상황으로 바뀌 었습니다 ... 해결 방법이 무엇인지 기억하지 못합니다.

+0

모델 작성자와 디자이너는 공통점이 없습니다. 이 두 가지는 완전히 다른 시나리오에서 사용되는 기능입니다. –

0

4 년 후 ... EF의 팀이 해결
까지 this issue는, 하나의 가능한 해결 방법은 외부 도구를 사용하여 .edmx 파일을 구문 분석 할 수 <NavigationProperty Name=으로 시작하는 모든 텍스트를보다 의미있는 탐색 이름으로 바꿉니다.
XML을 사용하면 구문 분석이 쉽고 다중도, FK 이름 등의 속성을 쉽게 찾을 수 있습니다.

관련 문제