我试图构建一个简单的搜索 LINQ 语句。当字符串被传递到 WHERE 时,空字符串会导致错误的结果。
tmp = (from p in tmp
where
p.Customer.custEmail.Contains(filter.Email) &&
p.Customer.custLastName.Contains(filter.LastName) &&
p.orderID == id
select p).ToList();
}
如果 filter.LastName 为空,则查询仍会尝试查找“”,这会导致 NO RECORDS。
不用写一堆
if (!String.IsNullOrWhiteSpace(filter.LastName))
对于每个过滤器项目,有没有办法在 LINQ 命令中执行此操作?