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; }
} 

最初のコードで、ConglomeratesByField1とConglomeratesByField2の「結合」となる単一の「Conglomerates」プロパティを持つことは可能ですか、それとも特殊なメソッドでクラスを拡張する必要がありますか?

4

1 に答える 1

0

2 つの異なるリレーションシップがあるため、2 つの別個のナビゲーション プロパティが必要です。1 つのナビゲーション プロパティを複数の関係のエンドポイントとしてマップすることはできません。

結合されたコレクションを取得するには、(読み取り専用でマップされていない) ヘルパー プロパティを導入できます。

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