例如,假设我有一个字符串属性“Document.DocumentType.DocumentCode”,DocumentCode是一个可以为空的十进制类型。
如何为此构建表达式树:x.Document.DocumentType.DocumentCode.GetValueOrDefault() == 4
?
对于我的实际情况,我不会确切地知道链接字符串属性的样子或属性级别。
答案 0 :(得分:4)
嗯,那棵树是:
GetValueOrDefault()
DocumentCode
DocumentType
Document
上的属性访问表达式ParameterExpression
从底部开始,然后从那里构建它。换句话说,如果您知道自己只有财产,那么您需要:
ParameterExpression
循环播放属性集,每次添加另一个图层或属性访问权限,例如
currentExpression = Expression.Property(currentExpression, propertyName);
在表达式