2010-09-07 3 views
0

J'utilise la bibliothèque linq dynamique de Scott Gu pour Linq à XMl. Le problème est que je ne sais pas comment référencer une valeur d'élément elle-même dans la requête dynamique.Comment se référer sa valeur dans linq dynamique à XML?

Ce que je veux faire est la suivante:

var doc = XDocument.Load("test.xml"); 
var ret = doc.Descendants("Row").Where(x => x.Element("ID").Value == "2").ToList(); 

Je veux remplacer la clause where LINQ dynamique, mais je ne sais pas comment je devrais réécrire. J'ai essayé comme suit:

var ret = doc.Descendants("Row").Where("Element(""ID"").Value == @0", "2").ToList(); 

Mais il me donne une erreur en disant "Il n'y a pas de propriété nommée Element" ou quelque chose.

Quelqu'un pourrait-il me dire comment faire cela?

Merci à l'avance, Yoo

Répondre

0

D'accord, je l'ai fait un truc. Ce n'est pas génial mais ça marche. Cela pourrait causer un problème de performances, mais pour l'instant, c'est bon.

var doc.Descendants("Row").Select(x => x.Element("ID").Value).Where("Value == @0", "2").Select(x => x.Parent).ToList(); 

Si vous avez une meilleure solution, veuillez l'afficher ici.

Merci, Yoo

Questions connexes