Maison > développement back-end > C++ > Comment joindre plusieurs tables dans LINQ à l'aide d'expressions Lambda ?

Comment joindre plusieurs tables dans LINQ à l'aide d'expressions Lambda ?

Susan Sarandon
Libérer: 2025-01-10 10:58:42
original
254 Les gens l'ont consulté

How to Join Multiple Tables in LINQ Using Lambda Expressions?

Rejoignez plusieurs tables à l'aide d'expressions LINQ Lambda

Lorsque vous travaillez avec plusieurs tables dans LINQ, vous devrez peut-être les rejoindre pour collecter les données associées. Ceci peut être réalisé grâce aux expressions lambda dans LINQ.

Supposons le scénario suivant :

  • Vous avez des classes pour Product, Category et ProductCategory (table associée).
  • Vous souhaitez joindre les trois tables et remplir un autre objet (CategorizedProducts) avec des propriétés spécifiques.

Ce qui suit est une version mise à jour du code qui utilise des expressions lambda pour effectuer la jointure :

<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 CategorizedProducts
    {
        ProdId = m.ppc.p.Id, // 或 m.ppc.pc.ProdId
        CatId = m.c.CatId,
        // 其他赋值
    });</code>
Copier après la connexion

Dans ce code :

  • L'opération de jointure joint les tables en fonction de conditions spécifiées.
  • Les types anonymes servent de représentations intermédiaires pour les données concaténées.
  • L'opération Select projette les propriétés requises dans l'objet CategorizedProducts.

Cette solution fournit une classe unique qui contient toutes les propriétés de la table de jointure, vous permettant de remplir l'objet CategorizedProducts selon vos besoins.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal