假設我有類似從BinaryExpression以表達<Func鍵<T, bool>>
Expression<Func<SomeType, DateTime>> left = x => x.SomeDateProperty;
Expression<Func<SomeType, DateTime>> right = x => dateTimeConstant;
var binaryExpression = Expression.GreaterThan(left, right);
Expression<Func<SomeType, bool>> predicate =
x => x.SomeDateProperty> dateTimeConstant;
1)我怎樣才能用的東西代替最後一行的分配的右手使用binaryExpression
呢? var predicate = x => binaryExpression;
不起作用。
2)right
始終是一個常數,不一定是DateTime.Now。它可以是一些簡單Expression
類型?例如,它不依賴於SomeType,它只是一個常量。
3)如果我有GreaterThan
作爲string
,有沒有辦法從這個字符串獲取Expression
中同名的方法?一般來說,如果比較方法的名稱爲string
,那麼如何才能從字符串中實際調用Expression
類中的同名方法?
它必須與LINQ to Entities一起工作,如果它很重要的話。
您可以使用ExpressionVisitor類更改表達式樹。 – Steven