我的要求是将列名与搜索数据一起传递,以便使用entityframework中的linq查询从db动态搜索。
[HttpGet]
public ActionResult Index(string Search, string Column)
{
if (!String.IsNullOrEmpty(Search))
{
List<Employee> result = new List<Employee>();
result = db.Employees.ToList();
result = result.Where(x => x.Column.ToLower().Contains(Search.ToLower())).ToList();
return View(result);
}
else
{
return View(db.Employees.ToList());
}
}
答案 0 :(得分:4)
我认为你看起来像DLinq。使用DLinq nuget package
var result= db.Employees.Where(Column+".Contains"+ "(\""+ Search.ToLower() + "\")").ToList();
Column
参数必须与Employee
实体中一个字符串属性的名称匹配。我建议使用try-catch,以防你传递错误的名字。