我有一个搜索表单,我想用它来搜索数据库中的数据。搜索框有 4 个复选框和 1 个文本字段。问题是我如何构建 linq 查询,因为我事先不知道用户将检查哪些文本框来过滤搜索。到目前为止我所拥有的是:
[HttpPost]
public ActionResult search(string ulv, string bjorn, string jerv, string gaupe)
{
var query = (from o in db.observasjonene select o);
if (ulv != null)
{
query = query.Where(o => o.art == ulv);
}
if (bjorn != null)
{
query = query.Where(o => o.art == bjorn);
}
if (jerv != null)
{
query = query.Where(o => o.art == jerv);
}
if (gaupe != null)
{
query = query.Where(o => o.art == gaupe);
}
IEnumerable ls = query.ToList();
return Json(ls, JsonRequestBehavior.AllowGet);
}
“where”子句的问题在于,如果条件为真,它会覆盖先前条件的结果。我想我需要一个“或”陈述或其他东西..