引用对象在EF6集合中没有被填充
本文关键字:填充 集合 对象 EF6 引用 | 更新日期: 2023-09-27 17:53:44
所以我有一个有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
属性中填充得很好。
Stuff tried and in project
- 延迟加载打开(我已经明确启用了)
- 重命名属性名称sales -> Salesmans
- 数据库有正确的模式
- 更改
ICollection
为ISet
我可能在想,这可能与命名约定有关,比如推销员->推销员,而不是推销员-> Salesmans
所以我通过给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没有一点帮助就不能连接…