Как передать имя столбца в качестве параметра для динамического поиска в Entity-Framework

Мое требование - передать имя столбца вместе с данными поиска для динамического поиска в базе данных, используя запрос linq в entityframework.

[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());  
    }          

}

1 ответ

Решение

Я думаю, что вы ищете что-то вроде DLinq. Используйте пакет Nuget DLinq

var result=  db.Employees.Where(Column+".Contains"+ "(\""+ Search.ToLower() + "\")").ToList();

Column параметр должен совпадать с именем одного строкового свойства в вашем Employee юридическое лицо. Я предлагаю использовать try-catch на случай, если вы введете неправильное имя.

Другие вопросы по тегам