J'essaie d'écrire une expression qui invoque une méthode qui accepte plus d'un argument en entrée et cette expression agit comme une clause "where" pour le moteur de requêtes de nhibernate. Actuellement, je reçois une erreur disant :
System.Exception : Appel de méthode non reconnu :
System.Func`3[[MyClass, Assembly, Version=9.123.434, Culture=neutral, PublicKeyToken=null],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=wjerkwr234],[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=234234123]]:Boolean Invoke(MyClass, Int32)
Expression<Func<MyClass, int, bool>> restricton=
(myClassObject, myNumber) => myClassObject.Property1== myNumber;
session
.QueryOver<MyClass>()
.Where(x =>x.Property2==1)
.And(x=>restriction.Compile().Invoke(x, 2))
pourquoi j'utilise l'expression ? Eh bien, c'est un paramètre de la fonction qui génère la requête et la condition peut changer.
Une idée de ce qui ne va pas avec le code ci-dessus ?