所以我的模型有Salesman
和Region
。推销员属于某个地区。
Salesman.cs
public class Salesman : Employee
{
public Salesman()
{
this.Invoices = new List<Invoice>();
}
public int? RegionId { get; set; }
[ForeignKey("RegionId")]
public virtual Region Region { get; set; }
public virtual ICollection<Invoice> Invoices { get; set; }
}
Salesman
继承了Employee
商店的基本名称,地址等数据 - 这是无关紧要的。
Region.cs
public class Region
{
public Region()
{
this.Salesmen = new List<Salesman>();
}
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public int? SalesManagerId { get; set; }
[ForeignKey("SalesManagerId")]
public virtual Salesman SalesManager { get; set; }
public virtual ICollection<Salesman> Salesmen { get; set; }
}
我遇到的问题是,Region.Salesmen
没有像其他项目那样被EF填充。
区域在Salesman.Region
属性中填充正常。
在项目中尝试过的东西
ICollection
更改为ISet
我可能认为它可能与像Salesman这样的命名约定有关 - &gt;推销员而不是推销员 - &gt; Salesmans
提前致谢。
答案 0 :(得分:0)
所以我通过向ICollection<Salesman> Salesmen
属性添加属性来解决它。
现在我的模型看起来像这样......
public class Region
{
public Region()
{
this.Salesmen = new List<Salesman>();
}
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public int? SalesManagerId { get; set; }
[ForeignKey("SalesManagerId")]
public virtual Salesman SalesManager { get; set; }
[InverseProperty("Region")]
public virtual ICollection<Salesman> Salesmen { get; set; }
}
不要问我它为什么会起作用,以及为什么EF在没有一点帮助的情况下无法将其链接起来......但确实如此。