如果一个设备可以具有多个资格,并且一个资格可以链接到多个设备,则需要配置多对多关系。
最简单的方法是在两个实体上配置导航属性:
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();
}