Maison >développement back-end >C++ >Comment effectuer correctement les jointures LINQ à l'aide d'expressions Lambda et de syntaxe de requête?

Comment effectuer correctement les jointures LINQ à l'aide d'expressions Lambda et de syntaxe de requête?

Barbara Streisand
Barbara Streisandoriginal
2025-01-28 16:46:09817parcourir

How to Correctly Perform LINQ Joins Using Lambda Expressions and Query Syntax?

Utilisez des expressions Linq et Lambda pour connecter les opérations

Erreur de requête:

Lorsque vous essayez d'utiliser des expressions Linq et Lambda pour connecter deux tables, l'utilisateur rencontre une erreur lors de l'exécution du code suivant:

Solution utilisant la grammaire de requête LINQ:

<code class="language-c#">int id = 1;
var query = database.Posts.Join(
    database.Post_Metas,
    post => database.Posts.Where(x => x.ID == id),
    meta => database.Post_Metas.Where(x => x.Post_ID == id),
    (post, meta) => new { Post = post, Meta = meta }
);</code>

Pour les utilisateurs qui connaissent mieux la syntaxe SQL, l'utilisation de la grammaire de requête LINQ peut améliorer la capacité de détection de lisibilité et d'erreur:

Solution utilisant la méthode d'expansion LINQ:

<code class="language-c#">var id = 1;
var query =
   from post in database.Posts
   join meta in database.Post_Metas on post.ID equals meta.Post_ID
   where post.ID == id
   select new { Post = post, Meta = meta };</code>
Pour les utilisateurs qui insistent pour utiliser les expressions de lambda, le code d'origine doit être modifié avec la grammaire:

Le code modifié utilise la syntaxe lambda pour effectuer avec précision l'opération de connexion, permettant aux utilisateurs d'accéder aux données après la connexion à la demande.

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