2014-05-15 4 views
1

EF6을 사용하여 DB-First 세대의 DbContext 및 POCO 개체를 만들고 다른 탐색 테이블과의 관계를 설명하는 데 도움이되지 않는 탐색 속성 이름을 다른 많은 동일한 문제로 처리하고 있습니다. 사람이 집과 직장 주소가있는 경우 친숙한 탐색 속성을위한 사용자 지정 코드 생성 전략

, 그것은

public class Person { 
    public virtual DbSet<Address> Address; 
    public virtual DbSet<Address> Address1; 
} 

이 질문은 그러나 도구 나 코드 솔루션도가 지원 EF5에 대한 올바른 궤도에로 객체에 반영 될 것입니다 예를 들어, t4 템플릿은 EF6에 의해 생성됩니다. 내가

public class Person { 
    public virtual DbSet<Address> Home; 
    public virtual DbSet<Address> Work; 
} 

과 위의를 교체하고 내가 처음부터 (즉, 수동으로 vs2013의 GUI를 통해 100 개 테이블을 수정해야 할 때 edmx 파일을 재생 할 수 있습니다 무엇을 가장 쉬운 방법입니다 Improve navigation property names when reverse engineering a database

하지 무엇입니까 내가 찾고 있어요).

나는 포럼을 둘러 보았고 디버그 T4 템플릿 도구를 사용하기 시작했으나 DIY보다 더 쉬울 것으로 기대했다.

+0

edmx 및 POCO 개체를 모두 사용하고 있습니까? –

+0

예, 제가 이해하는 한, edmx는 poco 객체를 생성하는 데 사용되어 다른 객체가없는 상태에서 어떻게 가질 수 있는지 보지 못합니까? vs를 통해 'ADO.Net Entity Data Model'을 추가하고 edmx 및 POCO 객체를 통해 DbContext를 만듭니다. – Joe

답변

1

edmx가 필요하지 않다면 전혀 제거하지 않고 EF Power Tools을 사용하여 데이터베이스를 코드 우선으로 되돌릴 수 있습니다. 그 후에 속성 이름 변경에 도움이되는 도구를 사용하십시오. 예 : Resharper

+0

이 시점에서 DB에서 먼저 코드로 마이그레이션하는 것이 범위를 벗어난 것 같습니다. 이상적으로, 저는 그 방향으로 가고 싶습니다만, 지금은 edmx에 친숙한 탐색 속성을 생성하기 위해 T4를 편집하는 것을 선호합니다. 너무 열심히해서는 안되니? – Joe

+0

나는 이것에 대한 충분한 담당자를 줄 수는 없다 ... 데이터베이스에서 첫 번째 모델로 이동하기 위해 코드를 처음으로 역방향으로 작성하는 것이 얼마나 쉬운 지 깨닫지 못했다. 고맙습니다! 너는 내 하루를 만들었 어! (1 시간이 걸렸지 만 그것을 전환하고, 전환하고, 테스트하고, 데이터 주석을위한 모든 메타 데이터 파일을 제거 할 수 있습니다.) – Joe

+0

쿨! 예. 모델과 데이터베이스가 크게 다르지 않은 경우 매우 쉽게 수행 할 수 있습니다. 어떤 탐색 속성에 대해서는 작은 문제가 하나 있습니다. 왜냐하면 어떤 이유로 가상으로 표시되지 않았기 때문에 게으른로드가 작동하지 않았기 때문입니다. –