有没有办法从 Expression<Func<T>,bool>
中提取属性、运算符和匹配值?给出以下示例:
var customers = GetCustomers();
var customerQuery = customers.Where(x=> x.CustomerID == 1
&& x.CustomerName == "Bob"); // The query is for illustration only
我需要能够输出以下类似的内容:
Property: CustomerID
Operator: Equals
Value: 1
Property: CustomerName
Operator: Equals
Value: Bob
我已经编写了一些代码,可以提取表达式中的属性名,但是似乎无法找到值和运算符存储在哪里,尽管在表达式的DebugView属性中非常明显可见。
(BinaryExpression)predicate.Body
将predicate
进行转换,现在一切都很明显了。感谢Marc。 - djdd87