小编use*_*406的帖子

IQueryable.Where子句并且不使用多个搜索参数

我遇到了使用AND运算符使用IQueryable.Where子句进行多重搜索的问题.我知道问题是当一个参数为空或者为null时,它正在搜索带有另一个参数的""并且没有返回结果但是我不想通过扩展和可笑的嵌套if来检查空值或者8个参数的空白.我用谷歌搜索了几天,OR显然有效,但AND条件没有返回任何内容.

albums = albums.Where(a => a.CA_AlbumName.ToUpper().Contains(searchName.ToUpper()) && 
                           a.CA_AlbumURL.ToUpper().Contains(searchURL.ToUpper()));
Run Code Online (Sandbox Code Playgroud)

如果两个参数都不是空白,则上述方法有效,但如果其中一个参数不是,则返回任 我已经尝试构建基于非null的where,如下所示,但结果相同:

if (!String.IsNullOrEmpty(searchName))
{
    albums = albums.Where(a => a.CA_AlbumName.ToUpper().Contains(searchName.ToUpper()));
}
if (!String.IsNullOrEmpty(searchURL))
{
    albums = albums.Where(a => a.CA_AlbumURL.ToUpper().Contains(searchURL.ToUpper()));
}    
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc search iqueryable where-clause

0
推荐指数
1
解决办法
6028
查看次数

标签 统计

asp.net-mvc ×1

iqueryable ×1

search ×1

where-clause ×1