Если единица оборудования может иметь несколько квалификаций и квалификация может быть связана с несколькими единицами оборудования, необходимо настроить отношение «многие ко многим».
Самый простой способ сделать это - настроить свойства навигации на обоих объектах:
public class Equipment : Entity
{
//... removed for brevity
public virtual ICollection<Qualification> RequiredQualifications { get; } = new HashSet<Qualification>();
}
public class Qualification : AuditableEntity
{
public string Name { get; set; }
public virtual ICollection<Equipment> RelatedEquipment { get; } = new HashSet<Equipment>();
//... removed for brevity
}
Или, если вы не хотите, чтобы свойство Навигация из Квалификации в Оборудование использовалось, используйте FluentAPI, чтобы настроить его как отношение «многие ко многим».
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Equipment>().HasMany(e => e.RequiredQualifications).WithMany();
}