【发布时间】:2013-09-14 05:40:01
【问题描述】:
我正在构建稍后评估的动态 LINQ 表达式。因此,例如,如果我想知道某个属性是否等于某个值,我会这样做:
// MemberExpression property;
// int? val;
Expression.Equal(property, Expression.Constant(val))
但是,我似乎找不到检测 val 是 Null 还是 NOT Null 的方法。有人可以向我推荐如何做到这一点吗?我试过这个:
Expression.Equal(property, Expression.Constant(null, property.Type));
但显然,这行不通。
【问题讨论】:
-
Once 选项是传入一个类似
Property != null的字符串并动态编译/调用它。我假设这是更大的表达式树的一部分?如果有,它是如何产生的? -
您能提供更多背景信息吗?很难理解你真正的问题在哪里......认为你应该做类似
Expression.Constant(val, <theTypeofVal>)的事情,其中 theTypeofVal 可能是一个可为空的类型,但我们不知道 val 来自哪里...... -
!val.HasValue如果它是一个可为空的值类型?
标签: c# asp.net-mvc linq entity-framework