我正在嘗試編寫一個表達式,該表達式調用接受多個參數作爲輸入的方法,並且此表達式充當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