我正在使用MVC,Nhibernate和IOC容器開發企業應用程序。在MVC控制器中擁有存儲庫引用
我三個層次:
DAL - NHibernate的數據存儲庫
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對象。國際奧委會容器工作正常。
對此解決方案的疑惑是我在控制器中引用了CustomerRepository參考。這個架構是否合適,或者有更好的方法來實現呢?
由於不是所有這些ASP.NET的原生東西..我假設你們使用名稱'經理'來描述服務層結構的類,或者我有困惑嗎? –
@tereško我只是簡單地複製問題中的內容。我不會說這是一個_ASP.NET thing_。事實上,我通常會說,超出UI級別的ASP.NET(MVC)命名約定不應該偏離其他語言......它們都是一樣的:-) – Charlino