我是 DI 的新手,我正在开发一个 MVC 项目,其中一个控制器被注入了一个UnitOfWork,这个 UnitOfWork 包含我域中每个实体类型的存储库。使用MSDN作为指南,我最初有类似的东西
public IRepository<Employee> Employees {
get {
if (_employees == null) {
_employees = new SqlRepository<Employee>(_context);
}
return _employees;
}
}
但是,我认为注入存储库会很好,例如:
public SqlUnitOfWork(IRepository<Employee> employees)
{
this.Employees = employees;
}
但是,如果创建 SqlRepository 非常昂贵怎么办。并非每个控制器操作都使用每个存储库。在我更改为 DI 之前,只有在访问它们时才会创建每个存储库。但是,现在所有存储库都是使用 UnitOfWork 创建的。我正在尝试确定当我已经在 SqlUnitOfWork 中时注入 SqlRepositories 是否值得?或者,我应该遵循 MSDN 示例吗?