我正在尝试编写一个表达式,该表达式调用接受多个参数作为输入的方法,并且此表达式充当nhibernate查询引擎的where子句。目前,我得到一个错误说:带有多个参数的Func上的表达式
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))
为什么我使用的表达?那么这是一个生成queryover语句的函数的参数,其中的条件可以改变
任何想法上述代码有什么问题?
时FIRO问题仅仅知道的是,当我构建表达mynumber的不能设置,这就是为什么我有它作为第二放慢参数..什么是解决方案呢? – user917670 2012-03-06 10:56:27