LINQ ラムダ式を使用して複数テーブル結合を実行する
LINQ では、ラムダ式を使用して複数のテーブルを結合できます。 3 つのクラスがあるとします:
<code>Product { Id, ProdName, ProdQty } Category { Id, CatName } ProductCategory { ProdId, CatId }</code>
ラムダ式を使用した連結
これらのテーブルは、次のコードを使用して結合できます:
<code>var query = product.Join( productcategory, p => p.Id, pc => pc.ProdID, (p, pc) => new { product = p, productcategory = pc } ).Join( category, ppc => ppc.productcategory.CatId, c => c.Id, (ppc, c) => new { productproductcategory = ppc, category = c } );</code>
これにより、次のクラスのオブジェクトが生成されます:
<code>QueryClass { productproductcategory, category }</code>
新しいオブジェクトを設定します
新しいオブジェクトに接続結果のプロパティを設定するには、次の Select メソッドを使用できます:
<code>var categorizedProducts = query.Select(m => new { ProdId = ???, CatId = ???, // 其他赋值 });</code>
属性値を取得
割り当てられる特定のプロパティは、次のように接続されたオブジェクトから取得できます:
<code>ProdId = m.ppc.p.Id, // 或 m.ppc.pc.ProdId CatId = m.c.CatId // 其他赋值</code>
代替クエリ構文
代わりに、より簡潔なアプローチを提供するクエリ構文を使用することもできます。
<code>var categorizedProducts = from p in product join pc in productcategory on p.Id equals pc.ProdId join c in category on pc.CatId equals c.Id select new { ProdId = p.Id, // 或 pc.ProdId CatId = c.CatId // 其他赋值 };</code>
このクエリの結果は、ラムダ式メソッドと同じです。読みやすさがより重要な場合は、クエリ構文を使用することをお勧めします。
以上がLINQ ラムダ式を使用して複数のテーブル結合を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。