Maison > développement back-end > C++ > Comment utiliser correctement les expressions LINQ JOIN et LAMBDA pour éviter les erreurs de requête courantes?

Comment utiliser correctement les expressions LINQ JOIN et LAMBDA pour éviter les erreurs de requête courantes?

Barbara Streisand
Libérer: 2025-01-28 16:32:11
original
398 Les gens l'ont consulté

How to Correctly Use LINQ Join and Lambda Expressions to Avoid Common Query Errors?

Linq et Lambda Expression join / où: résolvez l'erreur de requête

Lors de l'utilisation d'expressions JOIN et LAMBDA de Linq, des erreurs sont souvent rencontrées. Explorons une mauvaise scène commune et explorons des solutions claires.

Les requêtes suivantes sont conçues pour connecter deux tables en fonction des conditions de l'ID, mais elle provoquera plusieurs erreurs:

Afin de corriger ces erreurs, veuillez considérer les options suivantes:
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 }
);
Copier après la connexion

<.> 1. Utilisez Linq pour interroger la grammaire:

Afin d'obtenir un plus naturel et plus similaire à SQL, veuillez sélectionner la grammaire de requête LINQ:

<.> 2. Utilisez la méthode d'expansion LINQ:

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 };
Copier après la connexion

Si vous insistez pour utiliser l'expression de Lambda, veuillez ajuster la grammaire comme suit:

Veuillez garder à l'esprit que lorsque vous utilisez l'expression de lambda:

var id = 1;
var query = database.Posts    // 起始点(表等效项)
   .Join(database.Post_Metas, // 内连接表
      post => post.ID,        // 选择主键
      meta => meta.Post_ID,   // 选择外键
      (post, meta) => new { Post = post, Meta = meta }) // 选择
   .Where(postAndMeta => postAndMeta.Post.ID == id);    // 筛选条件
Copier après la connexion
Le support extérieur contient une opération de jointure.

Les deux premières expressions lambda sont sélectionnées pour connecter les clés principales et externes.
  • La troisième expression de Lambda définit le choix des attributs de résultat.
  • où les conditions de dépistage de la définition de la clause.

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 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