假设我有以下实体:
public partial class Store
{
public Store()
{
this.ConglomeratesByField1 = new HashSet<Conglomerate>();
this.ConglomeratesByField2 = new HashSet<Conglomerate>();
}
[Key]
public int ID_Store { get; set; }
public string StoreName { get; set; }
[ForeignKey("ID_Store1")]
public virtual ICollection<Conglomerate> ConglomeratesByField1 { get; set; }
[ForeignKey("ID_Store2")]
public virtual ICollection<Conglomerate> ConglomeratesByField2 { get; set; }
}
首先使用代码,是否可以使用单个“Conglomerates”属性作为ConglomeratesByField1和ConglomeratesByField2的“联合”,或者我必须使用专门的方法扩展该类?
答案 0 :(得分:0)
因为您有两种不同的关系,所以需要两个单独的导航属性。您不能将单个导航属性映射为多个关系的端点。
要获得组合集合,您可以引入(只读和未映射)辅助属性:
public IEnumerable<Conglomerate> ConglomeratesByField
{
get { return ConglomeratesByField1.Union(ConglomeratesByField2); }
}