Tanto quanto eu aprendi, o IRepositorydeve conter CRUD. Então nós herdamos esta IRepositoryem nossas outras interfaces, como IProducte implementar IProductclasse concreta ProductRepository, com métodos como GetAllProducts(), Top5Products().
Também podemos fazer o mesmo com a arquitetura de n camadas. como, Criação DAL Class Librarye nele definir uma classe Productcom métodos como GetAllProducts(), Top5Products().
Em ambos os DAL.Producte Repo.ProductRepositoryas classes que inicializar DB Contextde Entity Frameworke consultar nossos dados relevantes.
A chamada é semelhante nos dois métodos Repo.ProductRepositoryou DAL.ProductemBLL
Em vista dessas semelhanças, minha pergunta: qual é o benefício do Repos? Eu posso fazer o mesmo com muita facilidade usando arquiteturas de n-tier com ( Controller, BLL Class Library, DAL Class Library).