【发布时间】:2012-01-04 03:28:35
【问题描述】:
我在使用 AND 运算符使用 IQueryable.Where 子句进行多重搜索时遇到问题。我知道问题是当一个参数为空或空时,它正在使用另一个参数搜索“”而不返回结果,但我不想通过扩展且可笑的嵌套 if 来检查空值或8 个参数的空白。我已经用谷歌搜索了好几天,OR 显然有效,但 AND 条件没有返回任何内容。
albums = albums.Where(a => a.CA_AlbumName.ToUpper().Contains(searchName.ToUpper()) &&
a.CA_AlbumURL.ToUpper().Contains(searchURL.ToUpper()));
如果两个参数都不为空,则上述方法有效,但如果其中一个参数为空,则不返回任何内容。我已经尝试根据以下非 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()));
}
【问题讨论】:
标签: asp.net-mvc search where-clause iqueryable