次のようなフィールドを持つ Product テーブルがあります。
public class Product {
public int ID {get;set;}
...
}
製品を他の「クロスセル」製品 (アイテムなど) に結合するテーブル:
public class CrossSell {
public int ProductID {get;set;}
public int CrossSellID {get;set;}
}
私の意図は、任意の製品が与えられた場合に、クロスセル製品のリストを取得することです。
Entity Framework 4 (EF second edition) はこれらのテーブルを取得し、Product と Product1 の関係を作成します。テーブルを結合する行は CrossSell と呼ばれます。
私がしたいのは:
public class Product {
public int ID {get;set;}
...
public IList<Product> CrossSells {get;set;}
}
EFはこれを作成しました:
public class Product {
public int ID {get;set;}
...
public IList<Product> Products {get;set;}
public IList<Product> Products1 {get;set;}
}
Products1 という名前の 2 番目のリストを削除し、最初のリストの名前を「CrossSells」に変更するだけで、これらすべてが魔法のように機能するようにすることはできますか? EF が私の意図をよりよく理解できるように、SQL テーブルを別の方法で再作成する必要がありますか? 1 つの製品に複数のクロスセル アイテムを含めることができる場合、これらの SQL テーブルはどのようになりますか?
編集:
私が本当に探しているのは、循環参照なしで EF で CrossSell アイテムを表す方法です。現在、製品は他の製品を参照しており、他の製品は他の製品を参照しており、さらに他の製品を参照しています...