假设我有类似以下的内容
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
的字符串表示,是否有办法从此字符串中获取与Expression
中同名方法相同的方法?通常情况下,如果比较方法的名称以string
形式给出,如何从该字符串实际调用Expression
类上具有相同名称的方法?
如果需要的话,它必须与LINQ to Entities一起使用。