Шаблон репозитория - слишком много методов

Я часто вижу примеры шаблонов репозитория, которые выглядят следующим образом:

public interface IRepository<T>
{
    T GetById(int id);
    IEnumerable<T> GetAllByName(string name);
}

Но как вы справляетесь со случаями, когда вам может потребоваться выполнить сложный поиск? Я не думаю, что было бы хорошей идеей добавить к интерфейсу много методов, чтобы он в конечном итоге выглядел так:

IEnumerable<T> GetAllByFirstName(string name);
IEnumerable<T> GetAllByLastName(string name);
IEnumerable<T> GetAllByFirstAndLastName(string name);
IEnumerable<T> GetAllByAddress(string name);
...
...
...
8
задан Books 14 February 2012 в 08:16
поделиться