2009-12-23 1 views
1

두 테이블 모두 기본 키를 포함하지 않는 경우 두 테이블의 필드가있는 엔터티를 사용하려면 해당 방법이 Entity Framework Code-Only를 사용합니까? 여기 코드가있는 엔터티 분할

는 일례이다.

public class BlogPost 
{ 
    public int PostID { get; set; } 
    public String PostBody { get; set; } 
    public int UserID { get; set; } 
    public string Username { get; set; } 
} 

public class User 
{ 
    public int UserID { get; set; } 
    public String Username { get; set; } 
} 

public class BlogPostConfiguration : EntityConfiguration<BlogPost> 
{ 
    public BlogPostConfiguration() 
    { 
     HasKey(b => b.PostID); 
    } 
} 

public class UserConfiguration : EntityConfiguration<User> 
{ 
    public UserConfiguration() 
    { 
     HasKey(b => b.UserID); 
    } 
} 

나는 블로그 게시물 개체의 이름 속성은 사용자 테이블의 이름 컬럼에 매핑되어야합니다. 디자이너를 사용하는 외래 키를 사용하여 매핑을 수행 할 수 있지만 코드 전용을 사용하여 수행하는 방법을 잘 모르겠습니다. 내 구성 개체에서 두 MapHierarchy 문을 사용하여 시도했지만 두 테이블 모두 우리에게 동일한 기본 키가 작동하는 것처럼 보입니다.

+1

본 적이 있습니까? pdc09의 EF에 대한 http://microsoftpdc.com/Sessions/FT10 데모? 그렇지 않은 경우 - 살펴보십시오. –

+0

감사합니다 Alexander, 그 비디오는 좋았지 만 불행하게도 Entity Splitting을 다루지 않았습니다. EF에 들어가는 사람이라면 누구나 추천하는 시계입니다. – TonyB

답변

0

현재 Entity Framework의 상태에서는 이것이 가능하지 않다고 생각합니다.

엔티티 분할을 수행하려면 일대일 매핑 (두 테이블에 기본 키가 있어야 함)이 있어야합니다.

디자이너가 코드가 실제로 작동한다는 두 번째 테이블의 열을 추가 할 수 있기 때문에 필자는이 질문에 동의하지 않았습니다. 코드 전용을 사용할 때와 마찬가지로 EDMX에서 매핑을 시도 할 때 매우 유사한 오류가 발생합니다.