.net 如何为多级引用属性(链接属性)构建表达式树?
例如,假设我有一个字符串属性“Document.DocumentType.DocumentCode”,其中DocumentCode是可为空的十进制类型 如何为此构建表达式树:.net 如何为多级引用属性(链接属性)构建表达式树?,.net,entity-framework,expression-trees,.net,Entity Framework,Expression Trees,例如,假设我有一个字符串属性“Document.DocumentType.DocumentCode”,其中DocumentCode是可为空的十进制类型 如何为此构建表达式树:x.Document.DocumentType.DocumentCode.GetValueOrDefault()==4 就我的实际情况而言,我不知道链接字符串属性的确切外观或属性的级别。那么,该树是: 相等匹配,其中左侧复杂,右侧为常量表达式4 LHS是(表达式)上的方法调用 上一步中的表达式是(表达式)上的属性访问表达式
x.Document.DocumentType.DocumentCode.GetValueOrDefault()==4
就我的实际情况而言,我不知道链接字符串属性的确切外观或属性的级别。那么,该树是:
- 相等匹配,其中左侧复杂,右侧为常量表达式4
- LHS是(表达式)上的方法调用
- 上一步中的表达式是(表达式)上的属性访问表达式
- 上一步中的表达式是(表达式)上的属性访问表达式
DocumentType
- 上一步中的表达式是
参数表达式
- 将字符串拆分为“”
- 创建一个
参数表达式
- 循环访问属性集,每次添加另一层或属性访问,例如
currentExpression = Expression.Property(currentExpression, propertyName);
- 在处向表达式添加方法调用
- 使用它和给定的任何常量值构建一个相等比较
- 相等匹配,其中左侧复杂,右侧为常量表达式4
- LHS是(表达式)上的方法调用
- 上一步中的表达式是(表达式)上的属性访问表达式
- 上一步中的表达式是(表达式)上的属性访问表达式
DocumentType
- 上一步中的表达式是
参数表达式
- 将字符串拆分为“”
- 创建一个
参数表达式
- 循环访问属性集,每次添加另一层或属性访问,例如
currentExpression = Expression.Property(currentExpression, propertyName);
- 在处向表达式添加方法调用
- 使用它和给定的任何常量值构建一个相等比较
- 嗯,那棵树是: