2

それ自体にmanyTomanyを持つItemテーブルがあります:

public virtual ICollection<Item> Related { get; set; }

modelBuilder.Entity<Item>().HasMany(x => x.Related ).WithMany();

データ:

Item_Id   Item_Id1
8         2
8         3
8         4

たとえば、別の「重複」データを挿入しようとすると、1 しか表示されません。

4

3 に答える 3

2

問題の根源は、エンティティとは何かを誤解していることだと思います。エンティティは一意であり、一意の Id を持っています。たとえば、会社は一意の従業員のコレクションを持つことができるため、同じコレクションに同じ人物の 2 つのインスタンスを含めることはできません。ショッピング カートがある場合は、コレクション内のアイテムをアイテム自体ではなく、「注文ライン」と考える必要があります。注文明細には、独自の ID と、購入するオブジェクトであるエンティティへの参照があります。

于 2014-06-12T17:19:30.500 に答える
1

私はこれを具体的にチェックしていないので、詳細を調べる必要があるかもしれませんが
、(私が思うに)それを行う唯一の方法はmanually define、インデックス テーブル(例Item2Item) です。

追加情報については、私が作成したこの投稿を確認してください 。

カスタム テーブルが作成されたので、少し変更する必要があります。複合キーを から削除する必要があります.HasKey代わりに、独自の pkを使用します。たとえば、他のテーブルと同様に ID を使用します。

つまり、他のテーブルと同様に一意の PK、ID を定義し、それをキーとして持つことができます。これにより、fk 列に重複したキーを含めることができます)。


論理的に近い (同じではない) ように見えるので、この投稿を確認して
ください

于 2013-04-13T18:46:13.870 に答える