我经常看到像这样的示例仓库模式:
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);
...
...
...