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

本文关键字:搜索 查询 NULL 引用 具有 | 更新日期: 2023-09-27 18:34:33

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

var query = (from O in dm.Order
                where O.Customer.Name.ToLower().Contains(filter) ||
                O.Customer.Surname.ToLower().Contains(filter)
                select new
                { ... }).ToList();

如果我在订单表中的customer_ID为 NULL,则不会显示这些订单。我需要编写一个查询,无论我是否有 NULL customer_ID都应列出每条记录。假设过滤器是空字符串,它需要显示每条记录。

我尝试了类似的东西:

where O.customer_ID.HasValue ? O.Customer.Name.ToLower().Contains(filter) : (not know what to write here?)

我希望你能假设到底是怎么回事!

提前感谢,约瑟普

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

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