我遇到了使用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)