相关:Create a Lambda Expression With 3 conditions
与上述主题非常相似,我写了以下Expression
:
var body = Expression.AndAlso(
Expression.Equal(
Expression.PropertyOrField(param, "Year"),
Expression.Constant(year)
),
Expression.AndAlso(
Expression.Equal(
Expression.PropertyOrField(param, "CityCode"),
Expression.Constant(cityCode)
),
Expression.Equal(
Expression.PropertyOrField(param, "Status"),
Expression.Constant(50)
)
)
);
唯一的不同是我的新表Status
是tinyint null
中的(byte?)
或C#
。当我运行代码时,出现此错误:
未为类型'System.Nullable`1 [System.Byte]'和'System.Byte'定义二进制运算符Equal
所以我将Expression.Constant(50)
更改为Expression.Constant((byte?)50)
,并再次遇到相同的错误。我的错误在哪里?
谢谢
更新1)
我尝试了此操作:Expression.Constant(50, typeof(byte?));
,但出现了此错误:
参数类型不匹配
答案 0 :(得分:1)
几乎就像埃文所说的那样:
Expression.Constant((byte?)50, typeof(byte?))