这个示例类似于我的搜索查询,我有搜索过滤器,它应该搜索外国表中的客户说。
var query = (from O in dm.Order
where O.Customer.Name.ToLower().Contains(filter) ||
O.Customer.Surname.ToLower().Contains(filter)
select new
{ ... }).ToList();
如果Order表中的customer_ID为NULL,则不会显示这些订单。 我需要编写一个查询,列出每个记录是否有customer_ID NULL。我们假设过滤器是空字符串,它需要显示每条记录。
我尝试过类似的事情:
where O.customer_ID.HasValue ? O.Customer.Name.ToLower().Contains(filter) : (not know what to write here?)
我希望你可以假设这一切!
提前致谢, 约瑟普布罗兹
答案 0 :(得分:1)
(O.Customer.Name.ToLower() ?? "").Contains(filter)
这应该有效。但我不会这样做。仅在需要过滤时过滤。
var query = dm.Order;
if(!string.IsNullOrEmpty(filter)){
query = query.Where(o => o.Customer.Name.ToLower().Contains(filter)
||o.Customer.Surname.ToLower().Contains(filter));
}
var result = query.Select(o => new {...}).ToList();