0

假设我有以下实体:

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

4

1 回答 1

0

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

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

public IEnumerable<Conglomerate> ConglomeratesByField
{
    get { return ConglomeratesByField1.Union(ConglomeratesByField2); }
}
于 2012-10-12T16:34:32.973 回答