Maison >développement back-end >C++ >Comment utiliser correctement les expressions LINQ JOIN et LAMBDA pour éviter les erreurs de requête courantes?
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:
<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>
<.> 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:
<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>
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:
<code class="language-c#">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); // 筛选条件</code>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.
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!