由于两个外键单个收集?

时间:2012-10-12 15:02:07

标签: entity-framework ef-code-first

假设我有以下实体:

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的“联合”,或者我必须使用专门的方法扩展该类?

1 个答案:

答案 0 :(得分:0)

因为您有两种不同的关系,所以需要两个单独的导航属性。您不能将单个导航属性映射为多个关系的端点。

要获得组合集合,您可以引入(只读和未映射)辅助属性:

public IEnumerable<Conglomerate> ConglomeratesByField
{
    get { return ConglomeratesByField1.Union(ConglomeratesByField2); }
}