C# 为字节动态创建Where子句?领域
有关: 与上面的主题完全相似,我写了这个C# 为字节动态创建Where子句?领域,c#,lambda,expression-trees,c#-7.0,C#,Lambda,Expression Trees,C# 7.0,有关: 与上面的主题完全相似,我写了这个表达式: var body = Expression.AndAlso( Expression.Equal( Expression.PropertyOrField(param, "Year"), Expression.Constant(year) ), Expression.AndAlso( Expression.Equal( Expression.PropertyOrField(par
表达式
:
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
或中的(字节?
)。运行代码时,出现以下错误:
未为类型“System.Nullable`1[System.Byte]”和“System.Byte”定义二进制运算符Equal
因此,我将Expression.Constant(50)
更改为Expression.Constant((字节?)50)
,再次得到相同的错误。我的错在哪里
谢谢
更新1)
我试过:Expression.Constant(50,typeof(byte?)代码>但是我得到了这个错误:
参数类型不匹配
几乎正如埃文所说:
Expression.Constant((byte?)50, typeof(byte?))
您是否尝试过:Expression.Constant(50,typeof(byte?)代码>?是的,我得到了这个错误:参数类型不匹配
哪个调用会引发异常?@PetSerAl,所有这些调用@但这是不可能的。因为这里没有任何异常处理程序,所以一旦第一个方法调用抛出异常,其他方法调用将不会执行。因此,只有一个方法调用抛出异常。哪一个?