C# 是空实体框架5
我在sql server中有这样一句话:C# 是空实体框架5,c#,sql,linq,C#,Sql,Linq,我在sql server中有这样一句话: SELECT * FROM Documentos WHERE ( @param IS NULL OR strNOMPRO = @param ) 我用实体来做这件事 DocumentsList = db.DOCUMENTOS .Where(d => d.strNOMPRO == nombre && d.strNOMPRO == null) .OrderByDescend
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个寄存器
我如何才能做到这一点?这相当于您的SQL WHERE语句:
DocumentsList = db.DOCUMENTOS
.Where(d => nomber == null || d.strNOMPRO == nombre)
.OrderByDescending(d => d.datFECCER)
.ToList();
它检查参数的null
或()
BTW,因此参数在查询中间不能更改,动态添加过滤条件更为有效:
var query = db.DOCUMENTOS;
if (!String.IsNullOrEmpty(nombre))
query = query.Where(d => d.strNOMPRO == nombre);
DocumentsList = query.OrderByDescending(d => d.datFECCER).ToList();
进一步阅读:而且看起来您在
.Where()
中意外地使用了&&
而不是|
。