小编Fer*_*rte的帖子

如何忽略 lambda 表达式中转换为可为空的情况?

我正在尝试构建 Odata 表达式的解析器,当字段可为空时,我收到错误。

public class UserRight
{
    public bool? active
}

public void Test(){
    Expression<Func<UserRight, bool>> expression = p => p.Active == true;
}
Run Code Online (Sandbox Code Playgroud)

它生成了以下表达式:

{p => (p.Active == Convert(True, Nullable`1))}
Run Code Online (Sandbox Code Playgroud)

但我想收到它

{p => (p.Active == True)}
Run Code Online (Sandbox Code Playgroud)

为了避免这种“转换”。有没有简单的方法可以做到这一点?因为我的解析器已经准备好了,我不想仅仅因为一个可为空的字段而重建它。

c# expression expression-trees linq-expressions

5
推荐指数
1
解决办法
1877
查看次数