我必须在此过滤器中添加以下内容:Linq FindWhere子句和布尔过滤器?
“如果CountryID通过等于(999),那么搜索应该搜索所有国家,而不是按国家过滤。”
我现在拥有的是这个,这完全让我困惑。
var query = rep.
FindWhere(c =>
(
countryID.HasValue == false ||
c.CityID == null ||
c.Countries.ID == countryID
)
&&
(
mediaTypeID == 0 ||
c.MediaTypeID == mediaTypeID
)
&& c.Active);
我假设,如果任何关于第一个禁忌症的条件是真的,那么它会匹配所有国家?!如果是这样,那么我可以在第一个parantheses中添加一个额外的表达式来检查countryID 999?
ps。 FindWhere是:
public IQueryable<T> FindWhere(Expression<Func<T, bool>> predicate)
{
return _dbSet.Where(predicate);
}
什么是FindWhere? – 2013-03-26 15:05:19
请检查更新 – Xerxes 2013-03-26 15:06:28