我正在使用 MVC、Nhibernate 和 IOC 容器开发企业应用程序。
我三层:
DAL - 休眠数据存储库
public class CustomerRepository : Repository<int>,ICustomerRepository
{
public CustomerRepository(IUnitOfWork unitOfWork)
: base(unitOfWork)
{
}
}
BLL - 业务层
public class CustomerManager
{
private readonly ICustomerRepository _repository;
public CustomerManager(ICustomerRepository repository)
{
_repository = repository;
}
public IList<Customer> GetAll()
{
return _repository.GetAll<Customer>();
}
}
演示 - MVC 控制器
private readonly IUnitOfWork _unitOfWork;
private readonly ICustomerRepository _repository;
private readonly CustomerManager _manager;
public HomeController(IUnitOfWork unitOfWork, ICustomerRepository repository)
{
_unitOfWork = unitOfWork;
_repository = repository;
_manager = new CustomerManager(_repository);
}
我正在使用 IOC 容器来注册工作单元和 CustomerRepository 对象。IOC 容器工作正常。
这个解决方案让我烦恼的是我在控制器中有 CustomerRepository 引用。这个架构好还是有更好的方法来实现它?