我有很多一對多的關係人,將模型:EF自多到許多額外的參數
例如:
public Person()
{
ICollection<Person> Management {get;set;}
ICollection<Person> Staff {get;set;}
}
每個經理可能有許多相關人員,每個工人可能有許多相關的經理。
所以我也有一個連接表:
public class PersonLinks
{
public int ManagerId { get; set; }
public int StaffId { get; set; }
public MyTypeEnum/or maybe int/ RelationshipType { get;set; }
}
還精通API代碼:
modelBuilder.Entity<Person>().HasMany(m => m.Staff).WithMany().Map(m =>
{
m.MapLeftKey("StaffId");
m.MapRightKey("ManagerId");
m.ToTable("PersonLinks");
});
modelBuilder.Entity<Person>().HasMany(m => m.Management).WithMany().Map(m =>
{
m.MapLeftKey("ManagerId");
m.MapRightKey("StaffId");
m.ToTable("PersonLinks");
});
這個效果很好,但我想也映射「MyTypeEnum關係」屬性的Person模型,所以我可以這樣做:
myPerson.Management.Add(new Person{RelationshipType = ...})
或者:
myPerson.Staff.FirstOrDefault().RelationshipType = ...
要做到這一點找你e需要映射路口表 – octavioccl