La clause dans l'expression lambda
var Charts = chartGroup
.Descendants("charts")
.Elements("chart")
.Where(x => x.Attribute("id").Value == chartId.ToString())
.Select(x => x.Attribute("name").Value).ToList();
Ici, je veux utiliser une "clause de sauvegarde"" (comme le in
clause SQL) pour Attribute("id").Value
pour tableau de chaînes de caractères:
comme:
Where(x => x.Attribute("id").Value in ("1","2")
Where(x => x.Attribute("id").Value` in charIds[]
comment faire?
Si vous n'êtes pas à l'aide de la plaine de LINQ to objects, vous devez garder à l'esprit que certains
IQueryable
fournisseurs de ne pas mettre en œuvre toutes les constructions de vous jeter sur eux (comme Contains
). Des versions plus récentes de pratiquement tous les ORM cadres de gérer cela, mais en plus âgés, vous seriez obligé de pirater certains SQL vous-même. Bien sûr, cela ressemble à ce travail sur la plaine des objets CLR.OriginalL'auteur Madhuri Lad | 2013-11-26
Vous devez vous connecter pour publier un commentaire.
Si vous avez un ensemble de valeurs dans un tableau, vous pouvez utiliser:
OriginalL'auteur David Colwell
Vous pouvez utiliser Contient méthode de IEnumerable:
mise à jour:
en outre, ce code de transfert dans 'dans' instruction SQL pour IQueryable.
OriginalL'auteur Kirill Bestemyanov
Vous pouvez faire quelque chose comme ceci:
OriginalL'auteur King King
La
IN
dans LINQ estEnumerable.Contains
ouEnumerable.Any
. Voici plusieurs approches:OriginalL'auteur Rango
quelque chose comme ... où charIds.Contient(x.L'attribut"id".Valeur)
J'ai lu "Dans la clause dans LINQ". Il a dit lambda, mon mauvais 🙂
OriginalL'auteur Cătălin Rădoi
SQL
Where – In
Fonctionnalité peut être facilement atteint par l'Expression Lambda.Requête SQL -
Expression Lambda –
J'Espère que cela aiderait.
OriginalL'auteur ShaileshDev
OriginalL'auteur Chandan Rajbhar