相关: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?));
但是我收到了这个错误:
参数类型不匹配
几乎像埃文说的那样:
Expression.Constant((byte?)50, typeof(byte?))