2011-08-09 15 views
0

多対多の関係のモデルがあります。Entity Framework 4.1:コレクション内に同じオブジェクトを持つ多対多

私はobject1object2エンティティも持っています。 Object1にはICollection<Object2>プロパティがあります。 Object2はICollection<Object1>です。

問題は、Object1が同じキー(Id)で複数のObject2を持つ可能性があることです。 ICollection<Object2>{Id=1, Id=2, Id=1, Id=3... etc}のオブジェクトがある可能性があります。 次にSaveChangesを呼び出すのは{Id=1, Id=2, Id=3}で、データベースに保存されます。 Object1インスタンスの多くの同じオブジェクトを多対多の関係で保存するにはどうすればよいですか?

+0

同じエンティティの複数のオブジェクトに対して同じIDを持つ方法を教えてください。キーはオブジェクトごとに一意でなければなりません。 –

+0

なぜですか?たとえば、私は自分のプロパティコレクションに複数のオブジェクトのコピーを持っています。 (たとえば、メニュー注文を想像してください。メニュー項目があり、注文があります.2つのステーク(メニュー項目 'ステーク')を1注文に注文することができます。 – DolceVita

+1

そうですね。しかし、私はあなたがまだ2つのステークスを区別するために別のIDを持っているべきだと思います。だからあなたは2つのIDを持っています。 1つのユニーク(ItemId)と1つのユニーク(ItemTypeID)。それは、あなたが追跡して保存するのを容易にします。 –

答えて

2

残念ながら、これを行うには、2つの1対多コレクションと関連オブジェクトを中間に配置する必要があります。 Object1Object2Assoc。また、このオブジェクトは、コレクション内の順序を表すためにCountプロパティ、および/または他の類似した関連と区別するためのIdプロパティを必要とします。

+0

あなたの考えを得ました。私はこれが解決策だと思う。 – DolceVita

関連する問題