А кто может провести ликбез и\или дать что-то почитать? Вот есть паттерн — репозиторий. В моем представлении, реализация следующая:
Есть интерфейс IRepository<T>, который содержит все стандартные методы работы с сущностью - добавление, выборка, удаление, изменение.
Где в таком случае реализуется какая-то более сложная логика, типа — выбрать пару конкретных полей, собрать какой-то сложный объект, наложить какие-то условия и т.п.
Банально — нужно выбирать либо все объекты, либо только не удаленные (IsDeleted = false). Или это должна быть какая-то обертка над репозиторием, типа есть IRepository<Company> и есть ICompanyService? Или, если эта более сложная логика нужна, репозиторий не подходит в целом и все сразу надо делать на не-дженерик-сервисах, в интерфейсах которых сразу будут располагаться необходимый набор конкретных методов?