Je crée manuellement le lambda équivalent:MethodInfo pour EntityCollection au lieu de Queryable
var function = p => p.Child.Any(c => c.Field == "value");
J'ai une référence MethodInfo à la méthode « Tout » utilisé avec des expressions construites dans le code.
MethodInfo method = typeof(Queryable).GetMethods()
.Where(m => m.Name == "Any" && m.GetParameters().Length == 2)
.Single().MakeGenericMethod(typeof(Child));
Mes entités sont: Parent 1 --- * Enfant
enfant est une navigation sur la propriété Parent (p dans le lambda ci-dessus). Le type de la propriété est EntityCollection tel que créé par le concepteur.
Je cherchais la bonne façon de faire référence à la méthode Any pour créer cet appel. Marc m'a donné la réponse comment obtenir ceci ici: Calling a Method from an Expression
Mais cela ne fonctionne pas pour le cadre d'entité. EntityCollection n'implémente pas IQueryable, alors comment devrait-on référencer la méthode Any.
Ma réponse était trop grande pour un commentaire, s'il vous plaît voir ma réponse ci-dessous. – blu
Veuillez modifier la question pour la clarifier, plutôt que d'ajouter une "non-réponse". –
J'ai mis à jour la question originale avec des clarifications, merci – blu