具有NULL引用的C#搜索查询

时间:2016-02-13 23:12:17

标签: c# search reference null where

这个示例类似于我的搜索查询,我有搜索过滤器,它应该搜索外国表中的客户说。

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?)

我希望你可以假设这一切!

提前致谢, 约瑟普布罗兹

1 个答案:

答案 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();