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