为字节动态创建 Where 子句?场地

Create Where Clause Dynamically For Byte? Field

相关于:

与我写的上面的主题完全相似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)
        )
    )
);

唯一不同的是在我的新 table Status 中是 tinyint null(byte?)C# 中。当我 运行 代码时,我得到了这个错误:

The binary operator Equal is not defined for the types 'System.Nullable`1[System.Byte]' and 'System.Byte'

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

谢谢


更新 1)

我试过这个:Expression.Constant(50, typeof(byte?)); 但我得到这个错误:

Argument types do not match

几乎正如埃文所说:

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