【发布时间】:2012-03-06 19:19:54
【问题描述】:
我正在尝试编写一个表达式,该表达式调用一个接受多个参数作为输入的方法,并且该表达式充当 nhibernate 查询引擎的 where 子句。目前我收到一条错误消息:
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 语句的函数的一个参数,那里的条件可以改变
知道上面的代码有什么问题吗?
【问题讨论】:
标签: c# nhibernate delegates expression func