我希望在我的 MVC 层中根本没有存储库。
我的 DAL 项目层中有通用EFRepository
的 ,IRepository
和PASContext
(从 DbContext 继承)。
我已经在我的 MVC 项目下安装了具有快速启动功能的 Simple Injector,这使我可以进入我想要的存储库的每个控制器的构造函数。
但在我的解决方案中,我也有 BLL 项目,我希望 MVC 层只与 BLL 层对话,因为这是项目架构,将来我想在 BLL 层的类中添加逻辑。
我也不想在我的 BLL 层中创建上下文,但是存储库没有构造函数,它接受 0 个参数,这是我的ProductBLL
类:
public class BLLProducts
{
IRepository<Product> ProductRepository;
public BLLProducts(EFRepository<Product> Repository)
{
ProductRepository = Repository;
}
public ICollection<Product> getAll()
{
return ProductRepository.All().ToList();
}
}
如何在BLLProduct
不创建存储库/上下文的情况下从控制器或单元测试启动类?所以我可以在这里保持我的抽象。
我知道我需要在这里以某种方式使用简单注射器,我只是不知道如何。