Я занимаюсь разработкой приложения и пытаюсь применить DDD и другие инструменты (Nhibernate и asp.net MVC).
В этом приложении у нас есть требование для реализации «поиска» с помощьюИмя в персоне лица хранилища.Итак, у нас есть база репозитория (класс RepositoryBase), и в этой реализации у меня есть универсальный метод, который работает для этого элемента.
public IEnumerable<T> FindAll(Expression<Func<T, bool>> condition) {
return Session.QueryOver<T>().Where(condition);
}
И в моем приложении asv.net mvc мы могли бы использовать его следующим образом:
var list = _repositoryPerson.FindAll(x => x.Name == "Felipe");
С другой стороны, мы могли бы создать специальный метод (в классе RepositroyPerson) для этой задачи, например:
public IEnumerable<Person> FindByName(string name) {
return Session.QueryOver<Person>().Where(x => x.Name == name);
}
в моем приложении asp.net mvc, мы могли быиспользуйте это как:
var list = _repositoryPerson.FindByName("Felipe");
Мои вопросы:
1 - Каков рекомендуемый способ выполнения этого требования в соответствии с DDD?Конкретный или базовый класс?
2 - Кто-то порекомендовал какую-нибудь хорошую реализацию базы репозитория (универсальной) с Nhibernate QueryOver?
, если кто-то может мне помочь, я был бы очень признателен!Спасибо
ОБНОВЛЕНИЯ:
Если мне нужно, например, сложный поиск, например, объединить условия ... например: имя (необязательно) и возраст (необязательно) и город (необязательно)) и другие поля .... каждое поле будет необязательным и объединяется с другими полями!Использование выражения будет рекомендовано или нет?Как бы вы реализовали этот код?
PS: Извините за мой английский!
Спасибо