Maison >développement back-end >C++ >Comment effectuer une jointure multi-table complète à l'aide de LINQ Lambda ?

Comment effectuer une jointure multi-table complète à l'aide de LINQ Lambda ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-10 10:42:41787parcourir

How to Perform a Comprehensive Multi-Table Join Using LINQ Lambda?

Utilisez LINQ Lambda pour réaliser des jointures efficaces de plusieurs tables

Lors du traitement de données multi-tables dans LINQ, les opérations de jointure sont la clé pour obtenir efficacement les données associées. Cet article explique comment utiliser LINQ Lambda pour effectuer des opérations de jointure entre les trois tables Product, Category et ProductCategory.

L'extrait de code suivant montre comment y parvenir :

<code class="language-csharp">var categorizedProducts = product
    .Join(productcategory, p => p.Id, pc => pc.ProdId, (p, pc) => new { p, pc })
    .Join(category, ppc => ppc.pc.CatId, c => c.Id, (ppc, c) => new { ppc, c })
    .Select(m => new { 
        ProdId = m.ppc.p.Id, // 或 m.ppc.pc.ProdId
        CatId = m.c.CatId
        // 其他字段映射
    });</code>

Ce code atteint son objectif grâce à une série d'opérations de jointure :

  1. Rejoignez la table Product et la table ProductCategory en fonction de la condition p.Id == pc.ProdId.
  2. Joignez le résultat de la première jointure à la table Category, la condition est ppc.pc.CatId == c.Id.
  3. Enfin, projetez le résultat de la deuxième jointure dans un nouveau type anonyme qui contient les champs requis par la classe CategorizedProducts.

Avec cette approche, vous pouvez joindre efficacement plusieurs tables et extraire les données requises dans un seul objet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn