Я пытаюсь написать выражение, которое вызывает метод, который принимает более одного аргумента в качестве входных данных, и это выражение действует как условие where для механизма запросов nhibernate. В настоящее время я получаю сообщение об ошибке:
System.Exception: нераспознанный вызов метода: 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))
почему я использую выражение? Ну, это параметр функции, которая генерирует оператор запроса, и условие там может измениться
Есть идеи, что не так с приведенным выше кодом?