最近遇到一个问题,在oracle数据库中的nvl2函数表达式不知道怎么用linq写,因为数据库字段PreSerialId 只有1和null两个值,所以在linq中 写查询不太好写。首先,我们得在ef框架下面定义
因为字段是int类型只有1和null两个值,在.net ef框架生成的基类下面,定义字段应该是
public int? PreSerialId { get; private set; }
前端定义PreSerialId如下
是否启用 全部 是 否 后台调用时,定义字段应该是 int? Preserialid = args.Args.Preserialid == 0 ? null : args.Args.Preserialid;写在linq条件中正常写:
&& (Preserialid == -1 || p.PreSerialId == Preserialid)