动态为字节创建子句?领域

时间:2019-04-27 12:32:08

标签: c# lambda expression-trees c#-7.0

相关: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)
        )
    )
);

唯一的不同是我的新表Statustinyint null中的(byte?)C#。当我运行代码时,出现此错误:

  

未为类型'System.Nullable`1 [System.Byte]'和'System.Byte'定义二进制运算符Equal

所以我将Expression.Constant(50)更改为Expression.Constant((byte?)50),并再次遇到相同的错误。我的错误在哪里?

谢谢


更新1)

我尝试了此操作:Expression.Constant(50, typeof(byte?));,但出现了此错误:

  

参数类型不匹配

1 个答案:

答案 0 :(得分:1)

几乎就像埃文所说的那样:

Expression.Constant((byte?)50, typeof(byte?))