1
我使用EF 6,Code First。我有一个“联系”实体,一个“客户”和一个“制造商”。客户和制造商都有联系实体列表。也许在开发过程中可能会有更多的实体与联系实体列表。如何塑造联系实体,以便我没有单独的Id作为客户和制造商的外键?我想到的是这样的:实体框架 - 不同父母的孩子
public class Contact
{
[Key]
public int Id { get; set; }
...
public int ParentId { get; set; }
[ForeignKey("ParentId")]
public virtual Customer Customer { get; set; }
[ForeignKey("ParentId")]
public virtual Manufacturer Manufacturer { get; set; }
}
这可能吗?
编辑: 似乎是不是容易。我所做的是以下几点:
public class Customer
{
...
[InverseProperty("Customer")]
public virtual ICollection<Contact> Contacts { get; set; }
....
}
public class Manufacturer
{
...
[InverseProperty("Manufacturer")]
public virtual ICollection<Contact> Contacts { get; set; }
...
}
public class Contact
{
public int? ParentId { get; set; }
[ForeignKey("ParentId")]
public virtual Manufacturer Manufacturer { get; set; }
[ForeignKey("ParentId")]
public virtual Customer Customer { get; set; }
}
现在我必须包括制造商和客户,而不是制造商或客户。在ModelBuilder中放置“... HasOptional(...)”并不能解决问题。
?????
错过了 “InverseProperty” 属性,现在它正在工作。谢谢! – okieh 2014-09-01 11:33:02