J'ai un objet XElement avec des valeurs pour les données fantaisie.C# LINQ Emplacement des arguments de type prédicat
I ont une expression pour interroger le xml:
Expression<Func<XElement, bool>> simpleXmlFunction =
b => int.Parse(b.Element("FooId").Value) == 12;
utilisé dans:
var simpleXml = xml.Elements("Foo").Where(simpleXmlFunction).First();
L'erreur de temps de conception est la suivante:
Les arguments de type de procédé « System.Linq. Enumerable.Where (System.Collections.Generic.IEnumerable, System.Func) 'ne peut pas être déduit de l'utilisation. Essayez de spécifier explicitement les arguments de type '
Le délégué fourni à Où doit prendre un XElement et retourner un booléen, en marquant si l'élément correspond à la requête, je ne sais pas comment ajouter quoi que ce soit au délégué ou à la clause where pour marquer le type.
En outre, la méthode parallèle pour la fonction réelle par rapport à Entity Framework n'a pas ce problème. Qu'est-ce qui n'est pas correct avec la version LINQ-XML?
Pourquoi cela fonctionne-t-il pour Entity.Where alors? – blu
L'implémentation .Where pour IQueryable est différente de l'implémentation .Where pour IEnumerable . –
ahh je le vois, merci pour la clarification. – blu