搜索查询包含空值?

时间:2014-07-11 09:20:23

标签: sql nhibernate

在我的数据库中,我有字符串类型字段:client_name

我试图通过他的名字进行搜索以找到客户

sclient =(sclient ??"")。ToLower();

  

var items = session.Query()。其中​​(x =>   。x.Users.name.ToLower()包含(sclient));

请注意,Users.name是一个映射类。

当我执行简单搜索时,一切正常。现在当我的sclient为null时,搜索不会显示Client_name为空的任何项目!

如何在搜索查询后显示名称为null的客户端?

1 个答案:

答案 0 :(得分:1)

如果要返回包含搜索字符串或其列值为null的记录,则为语法:

var items = session
     .Query<MyEntity>()
     .Where(x => x.Users.name.ToLower().Contains(sclient)
              || x.Users.name == null);

将执行以下操作:

// sql generated
WHERE lower(users1_.client_name) like (''%''+@p1+''%'') 
   OR usrs1_.client_name is null