Мне интересно, как реализовать функцию поиска?Поиск действия с использованием предиката linq. ASP.NET MVC
Посмотрим, как я могу себе представить. Я буду использовать модель employee
для примера. Таким образом, employee
обладает довольно стандартными свойствами: 'Id', EmployeeId
, Name
, Birthday
.
Мой Repository
объект содержит метод, как:
IQueryable<T> Get(Expression<Func<T, Boolean>> predicate);
Итак Search
(принадлежит EmployeeController
) действие будет выглядеть
[HttpPost]
public ViewResult Search(Guid Id, Guid EmployeeId, String Name, DateTime birthday)
{
// call repository.get(x => x.Name == Name && x.Id == Id ...);
}
The Search
зрения затем держат форму с текстовых соответствующие критериям поиска/параметрам действия.
Но там способность поиска связана с моделью/контроллером. Поэтому мне нужно будет создать подобное действие для каждого контроллера.
Как это сделать лучше?
Спасибо!
Nope. Не за что. Вещь не в повторных повторениях (очевидно, что предикаты будут различны). Дело в повторении действий между контроллерами. Мне было интересно, может быть, я мог бы абстрагироваться от функции «Поиск»? – lexeme
Я не совсем уверен, что я следую, вы говорите, что у вас есть аналогичная форма поиска для каждого типа сущности на каждом представлении? или вы говорите, что у вас есть одна форма поиска, которая должна использоваться в нескольких представлениях, например, в заголовке? – devdigital
Пока у меня их нет. Но ваш последний вариант - это то, что я хочу. И я не хочу менять класс репозитория. Но я собираюсь рассмотреть то, что вы посоветовали. – lexeme