我正在嘗試構建表達式樹(still),但進一步得到了!我需要創建一個BinaryExpression
以執行成員與項目集合之間的「In」比較。因此,如果成員包含在項目中,表達式應該返回true。「In」操作的表達式樹二進制表達式
這顯然不存在:
Expression.MakeBinary(ExpressionType.In, memberExpression, constantExpression);
constantExpression
是IEnumerable<T>
類型的ConstantExpression
而memberExpression
是T
型MemberExpression
。
我將如何創建這樣一個表達式?
這是我的第一個想法,但我對如何將這樣的LINQ查詢翻譯成表達式樹感到失落。 – 2010-03-23 16:27:36
@Adam:最簡單的做法是嘗試一下:)創建一個表達式,然後使用Reflector來查看編譯器完成了什麼。基本上會有一個調用Queryable.Where的表達式,該表達式表示對常量('specialUsers'集合)上的'Contains'的調用,它傳入了評估過的'user.Name'作爲參數。 – 2010-03-23 16:30:16
沒有意識到LINQ編譯出來的方式。這應該爲我節省一些時間。謝謝! – 2010-03-23 17:01:56