2015-09-09 3 views
0

Я пытаюсь сопоставить отношения «многие ко многим». и включают в себя объект lookup/junction table, и у меня возникают проблемы. Вот моя (основная) модель:Сопоставление поиска/соединения таблицы в отношениях «многие ко многим»

public class User 
{ 
    public int UserId { get; set; } 
    public IList<UserGroupCode> Codes { get; set; } 
} 

public class Group 
{ 
    public int GroupId { get; set; } 
    public IList<UserGroupCode> Codes { get; set; } 
} 

public class UserGroupCode 
{ 
    public int UserGroupCodeId { get; set; } 
    public int UserId { get; set; } 
    public int GroupId { get; set; } 
    public string Value { get; set; } 
} 

Вот конфигурация для User Я работал с

HasMany(p => p.Codes).WithMany().Map(m => 
{ 
    m.ToTable("UserGroupCodes"); 
    m.MapLeftKey("UserId"); 
    m.MapRightKey("UserGroupCodeId"); 
}); 

Я видел много статей о том, как сопоставить многие-ко многие отношения, которые не включают таблицу поиска в качестве объекта (классический пример - отношения User-Roles). Но, как вы можете видеть, у меня есть свойство Value на моем UserGroupCode отношениях, которое требует, чтобы это отношение являлось фактической сущностью.

Заранее спасибо.

ответ

0

В итоге я столкнулся с this статьей. Я добавил навигационные свойства к моей модели UserGroupCode для User и Group.

public class UserGroupCode 
{ 
    public int UserGroupCodeId { get; set; } 
    public int UserId { get; set; } 
    public User User { get; set; } 
    public int GroupId { get; set; } 
    public Group Group { get; set; } 
    public string Value { get; set; } 
} 

только конфигурация, необходимая для связи находится на UserGroupCode лица:

HasRequired(p => p.User).WithMany(p => p.Codes).HasForeignKey(p => p.UserId); 
HasRequired(p => p.Group).WithMany(p => p.Codes).HasForeignKey(p => p.GroupId); 
Смежные вопросы