LINQ ラムダ式を使用した複数テーブル結合のマスター
LINQ (言語統合クエリ) は、データベースと対話するための強力かつ効率的な方法を提供します。 データ取得で頻繁に行われるタスクには、複数のテーブルの結合が含まれます。このガイドでは、LINQ ラムダ式を使用してこれらの結合を効果的に実行する方法を説明します。
データベーステーブルを表す 3 つのクラスの例を考えてみましょう:
Id
、ProdName
、ProdQty
Id
、CatName
ProdId
、CatId
LINQ の Join
メソッドにより、これらのテーブルの結合が容易になります。 以下に例を示します:
<code class="language-csharp">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>
このコードは、Product
、ProductCategory
、Category
をそれぞれの Id
列と CatId
列に基づいて結合します。 ただし、結果はネストされたオブジェクトになります。
より合理化された結果、関連するすべてのプロパティを含む単一のオブジェクトを作成するには、Select
メソッドを使用します。
<code class="language-csharp">var categorizedProducts = query.Select(m => new { m.ProdId = ???, m.CatId = ???, //other assignments });</code>
結合されたテーブルのプロパティをこの新しいオブジェクトに正しく割り当てる方法は次のとおりです:
<code class="language-csharp">var categorizedProducts = query.Select(m => new { ProdId = m.productproductcategory.product.Id, // or m.productproductcategory.productcategory.ProdId CatId = m.category.Id, // other property assignments from m.productproductcategory.product, m.productproductcategory.productcategory, and m.category });</code>
LINQ ラムダ式と Join
および Select
を組み合わせたこのアプローチは、複数テーブル結合の効率的な方法を提供し、必要なデータをすべて含む単一の管理しやすいオブジェクトを生成します。
以上がLINQ ラムダ式を使用して複数テーブルの結合を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。