是null实体框架5

本文关键字:框架 实体 null | 更新日期: 2023-09-27 18:24:22

我在sql server中有这样一句话:

SELECT * FROM Documentos WHERE ( @param IS NULL OR strNOMPRO = @param )

我用实体做这件事

DocumentsList = db.DOCUMENTOS
                .Where(d => d.strNOMPRO == nombre && d.strNOMPRO == null)
                .OrderByDescending(d => d.datFECCER).ToList();

如果param为null,则返回sql中的所有寄存器,但在linq中返回0个寄存器

我怎样才能做好这件事?

是null实体框架5

这相当于SQL WHERE语句:

DocumentsList = db.DOCUMENTOS
                .Where(d => nomber == null || d.strNOMPRO == nombre)
                .OrderByDescending(d => d.datFECCER)
                .ToList();

它检查参数是否为null或(||运算符)它检查strNOMPRO属性是否应等于参数。

BTW因此您的参数不能在查询过程中更改,动态添加过滤条件更有效:

var query = db.DOCUMENTOS;
if (!String.IsNullOrEmpty(nombre))
    query = query.Where(d => d.strNOMPRO == nombre);
DocumentsList = query.OrderByDescending(d => d.datFECCER).ToList();

进一步阅读:&操作员和||操作员