Sous-requête LINQ avec opérateur ET n'affiche pas de résultats
Moi encore...
J'ai un Fichier XML qui contient les différentes catégories que je voudrais requête pour différents attributs.
<item>
<title>Industries</title>
<category type="Channel">Automotive</category>
<category type="Type">Cars</category>
<category type="Token">Article</category>
<category type="SpecialToken">News</category>
<guid>637f0dd7-57a0-4001-8272-f0fba60feba1</guid>
</item>
EN SQL, je voudrais écrire quelque chose comme.
select * from articles where channel = 'Automative' AND type = 'Cars' etc. etc.
Comment puis-je réaliser cela avec linq?
J'ai essayé la requête suivante, mais elle renvoie null. Si je combine les deux attributs avec le "OU" opérateur || je voudrais obtenir les résultats, mais avec tous les doubles des résultats si un élément correspond à la fois à des critères.
var articleList = (from item in doc.Descendants("item")
from _category in item.Elements("category")
where _category.Value == valueCboChannel && _category.Attribute("domain").Value == "Channel"
&& (_category.Value == valueCboSubChannel && _category.Attribute("domain").Value == "SubChannel")
select new
{
Title = item.Element("title").Value,
Guid= item.Element("guid").Value,
description = item.Element("description").Value,
link = item.Element("link").Value
}).ToList();
ListView1.DataSource = articleList;
ListView1.DataBind();
OriginalL'auteur Chris | 2009-02-11
Vous devez vous connecter pour publier un commentaire.
J'avais le simplifier avec une méthode d'extension pour faire la difficile recherche:
(mise à jour le 12/02/09 à exclure les éléments vides)
OriginalL'auteur Marc Gravell
Merci pour l'astuce, j'ai réussi en quelque sorte à le faire fonctionner, mais seulement avec ".D'abord" dans la méthode d'extension.
Le Problème que je me pose maintenant est de savoir comment obtenir toutes les valeurs où il y a des valeurs NULL dans le fichier xml. Fondamentalement, le xml pourrait ressembler à ce qui suit. Donc, si j'utilise "Première" alors bien sûr, le premier vide aurez choisi, ce n'est pas affichée.
Est-il possible d'ignorer les valeurs NULL?
Ici l'extension actuelle de la méthode
BTW - si vous utilisez tout d'Abord, vous n'avez pas besoin de la valeur null est à vérifier, car il aura déjà jeté une exception si elle n'a pas à en trouver un
OriginalL'auteur Chris