値はすべてドロップダウン リストからのもので、null の場合もそうでない場合もあります。パラメータ値のいずれかが null であるかどうかに関係なく機能するクエリを作成する必要があります。以下は、すべてのパラメーターに値があり、それぞれすべての.Where
ステートメントが真である場合にのみ機能し、結果を返します。null パラメーターが何にでも一致することを許可することを指定するために、いくつかのワイルドカード正規表現を考えています。そのため、パラメーターが多いほど検索精度は高くなりますが、一部しか指定されていないか、指定されていない場合でも機能します。
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();
}