0

私はエンティティ フレームワークを使用しており、linq を使用してコレクションを利用できるようにする方法が必要です。私が何を意味するかを示します。

私は3つのテーブルを持っています。

  • 製品
  • 製品オプション
  • Product_ProductOption_Mappings

テーブルを使用して、と の間にProduct_ProductOption_Mappings多対多の関係を作成しています。特定の製品を指定して、その製品オプションのコレクションを引き出したいと思います。ProductProductOptions

using((Model.Entities context = new Model.Entities())
{
    var options = context.Products
            .Where(p => p.ID == 1)
            .First()
            .Product_ProductOption_Mappings.ProductOptions.ToList();
}

これは正しくありませんが、ProductOptions「関連付けられている」のリストをProducts.

どんな助けでも親切にいただければ幸いです。

4

1 に答える 1

0

多対多テーブルにリレーションシップの管理に必要な 2 つの Id のみが含まれている場合、EF はそのリンク テーブルを概念モデルから非表示にすることをサポートする必要があります。基本的に、概念モデルに Product エンティティと ProductOption エンティティを用意し、それらを多対多で関連付ける必要があります。以下の例では、製品内に含まれるナビゲーション プロパティに「オプション」という名前を付けています。

次に、次のようなことができるはずです。

using((Model.Entities context = new Model.Entities())
{
    var options = context.Products
        .Single(p => p.ID == 1)
        .Options
        .ToList();
}

あなたの問題を解決するために。

于 2012-05-30T09:14:17.260 に答える