Похоже, я отвечаю на вопрос каждый день на одну и ту же тему.:))
В любом случае - на вопрос - я согласен с @qes.
Суть брака Сервис / Репозиторий заключается в том, что ваши Репозитории просты, и Сервис должен предоставить логику для выполнения запросов.Ваша служба должна иметь специальные методы, необходимые для «потребителя» (приложение MVC), например:
public ICollection<Order> FindOrdersForCustomer(int customerId)
{
return _orderRepository
.Query()
.Where(order => order.CustomerId == customerId)
.ToList();
}
Простая упаковка вызовов не имеет смысла.Ваша служба должна выступать в качестве фасада между вашим приложением MVC и вашим базовым репозиторием.
По сути, ваш OrderRepository (например) определяет операции с заказами.Ваш OrderService должен предоставить все возможные способы добавления / извлечения / сохранения / удаления Ордера.
Именно поэтому я не являюсь поклонником "Single", "Сначала "," Все "методы в репозитории.
У меня есть только один метод" Чтение ", называемый" Поиск ".
Служба должна иметь" Единый "," Первый ", «Все» методы, просто используя базовый LINQ для материализации метода Find.
Ваш репозиторий является чрезмерно сложным IMO.
Интерфейс моего репозитория имеет только 3 метода:
IQueryable<T> Find()
void Save(T entity)
void Delete(T entity)
И мой интерфейс службы имеет значение от 5 до 20.