2010-12-30 3 views
4

속성에 HasColumnName이라는 유창한 메서드가 있습니다. HasKey가 그것을 잃어 버렸습니다. CTP4에서는 MapSingleType을 통해 다른 열 이름을 지정할 수 있었지만 Map (MapSingleType을 대체 한)을 사용하려고하면 작동하지 않습니다. 어떤 아이디어?EF CTP5 다른 열 이름을 가진 기본 키 매핑

+1

* 작동하지 않는 코드 *를 게시하십시오. 감사. –

+0

해결책을 찾았습니까? –

답변

0

CTP5의 API는 그러한 가능성을 제공하지 않는 것 같습니다. 성공하려면 ModelBuilder가 잘못된 키로 MetaDataWorkspace를 빌드하도록해야합니다.

그런 다음 objectContext에서 실제 엔터티 (테이블 및 열)의 저장소 인 SSPace를 검색 한 다음 리플렉션을 통해 '잘못된'열 이름의 메타 속성 이름을 변경했습니다 .

내가 아는 바로는 이것이 올바른 방법이다. 그러나 그것이 내가 찾은 유일한 것이다. 우리는 ObjectBuilder에 확장 메서드를 만들었습니다.이 메서드는 키 열이 올바른 열로 매핑되도록 해당 열 이름을 바꿉니다.

2

작동하지 않습니까?

modelBuilder.Entity<Institutes.Institute>() 
    .HasKey(e => e.Id) 
    .ToTable("Institutes", "core"); 

modelBuilder.Entity<Institutes.Institute>().Property(e => e.Id) 
    .HasColumnName("InstituteID"); 
관련 문제