Насколько я узнал, IRepositoryдолжен содержать CRUD. Тогда мы наследуем это IRepositoryв наших других интерфейсов , как IProductи реализовать IProductконкретный класс ProductRepository, с методами , как GetAllProducts(), Top5Products().
Мы также можем сделать то же самое с n-уровневой архитектурой. как, создание DAL Class Libraryи в нем определить класс Productс методами , как GetAllProducts(), Top5Products().
В обоих DAL.Productи Repo.ProductRepositoryклассах мы инициализируем DB Contextиз Entity Frameworkи запросов наших соответствующих данных.
Вызов похож в обоих Repo.ProductRepositoryили DAL.Productметоды изBLL
Ввиду этих сходств, мой вопрос, в чем выгода Repos? Я могу сделать то же самое с большой легкостью , используя многоуровневые архитектуры с ( Controller, BLL Class Library, DAL Class Library).