这些值都来自下拉列表,可以为空,也可以不为空。需要编写一个无论任何参数值是否为空都可以工作的查询。.Where
仅当所有参数都有值并且所有语句分别为真时,以下内容才会起作用/返回结果。我正在考虑一些通配符正则表达式来指定允许空参数匹配任何内容。因此,参数越多,搜索精度就越高,但如果只提供一些参数或不提供一些参数,它仍然可以工作。
public ActionResult GetResults(string age, string ProgType, string Country)
{
var results = _db.Categories
.Where(c => c.CatSchema.TypeName == "Programs")
.Where(c => c.FilterValToCatMaps.Any(fm => fm.FilterValue.Value == age))
.Where(c => c.FilterValToCatMaps.Any(fm => fm.FilterValue.Value == ProgType))
.Where(c => c.RootCat.Name == Country)
.Select(c => c.RootCat);
return View();
}