我怎么能转换
Expression<Func<T,U>> fieldExpression = a=>a.Field1.Field2.Field3
类似
Expression<Func<T, U>> fieldExpression =
a => a.Field1 != null
? a.Field1.Field2 != null
? a.Field1.Field2.Field3
: null
: null;
是否有libs或示例?
我有很多表达式&gt;看起来像
Expression<Func<T,U>> fieldExpression = a=>a.(Field1 as SomeType).Field2.Field3
它在LINQ查询中用作“虚拟字段”表达式,因此当我在Select()
中使用它时,当FieldN之一为NULL时,它可以正常工作。
此表达式的另一种用法是编译Func<T,U>
以从对象中提取值。因此,当我使用fieldExpression.Compile()(myObject)
并且其中一个FieldN为NULL时 - 我得到了NullReferenceException
。
我知道,第二个表达式更通用,我只能使用它,但它更复杂,由它生成的SQL明显更慢
答案 0 :(得分:0)