2012-07-16 2 views
0

두 가지 속성을 가진 : 내 모델을 통해 EF을 실행하면EF 대다 나는 샘플 코드가

public class Tag 
{ 
    public int TagId { get; set; } 
    public virtual ICollection<User> Users { get; set; } 
} 

public class User 
{ 
    public int UserId { get; set; } 
    public virtual ICollection<Tag> Tags { get; set; } 
} 

이 (내가 코드 첫 번째 방법을 사용), 전 자동으로 내 DB에서 생성 된 일부 테이블을 얻을 수를 : 이 경우 EF의 GENER에

public class User 
{ 
    public int UserId { get; set; } 
    public virtual ICollection<Tag> Tags { get; set; } 
    public virtual ICollection<Tag> Tags2 { get; set; } 
} 

: 나는 사용자 개체에 또 하나 개의 속성을 추가하기로 결정 때까지

Users 
Tags 
UserTagUsers <-- junction table for many-to-many relationship 

그것은 괜찮습니다 완전히 다른 관계를 가지지 만 UserTagUsers 접합 테이블을 제거하지만 일대일 매핑을 만들기 위해 태그 테이블에 몇 가지 추가 속성을 추가합니다.

어떻게하면 태그와 태그 2가 다 대다가되도록 EF에 명시 적으로 알릴 수 있습니까? 매핑을 구성 할 수

답변

1

사용 능통 API

modelBuilder.Entity<User>() 
    .HasMany(u => u.Tags).WithMany(t => t.Users) 
    .Map(m => 
    { 
     m.ToTable("UserTags"); 
     m.MapLeftKey("UserId"); 
     m.MapRightKey("TagId"); 
    }); 

    modelBuilder.Entity<User>() 
    .HasMany(u => u.Tags2).WithMany(t => t.Users2) 
    .Map(m => 
    { 
     m.ToTable("UserTags2"); 
     m.MapLeftKey("UserId"); 
     m.MapRightKey("TagId"); 
    }); 
관련 문제