ホームページ > バックエンド開発 > C++ > LINQ ラムダ式を使用して複数のテーブル結合を実行する方法

LINQ ラムダ式を使用して複数のテーブル結合を実行する方法

Patricia Arquette
リリース: 2025-01-10 10:13:41
オリジナル
591 人が閲覧しました

How to Perform Multiple Table Joins Using LINQ Lambda Expressions?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート