我正在尝试在“我的服务”类中使用工作单元模式。
我有我的 CompanyService 课程
public class CompanyService: ICompanyService
{
private readonly ICompanyRepository _companyRepository;
public CompanyService(ICompanyRepository companyRepository)
{
_companyRepository = companyRepository;
}
public void CreateCompany(Company company)
{
_companyRepository.Add(company);
//I want to have unit of work commit here!!!
//unitofwork.commit();
}
public void UpdateCompany(Company company)
{ etc...}
如果我的 IUnitOfWork 位于我的数据层而不是域层,我如何在我的 ServiceClass 中注入 UnitOfWork 的实例?我的域层中应该有 IUnitOfWork 吗?我只是觉得这听起来不太对劲...
我的领域层中应该有一个工作单元吗?
如果您的领域层需要它,那么答案肯定是:是的。
域层应该包含它工作所需的一切。您唯一需要记住的是,该层不应引用任何外部库,也不应与任何技术特定实现相关联。
Your IRepository
or IUnitOfWork
的具体实现将位于基础设施/数据层中的某个位置,您可以在其中引用您想要的任何框架(实体框架,...)
看看这个所以答案 https://stackoverflow.com/questions/16861127/onion-architecture-business-services-interfaces-and-implementation/16959061#16959061我在其中解释了域层中需要放置的内容(这是一个与洋葱架构相关的问题,但并不重要)。
看看这个所以答案 https://stackoverflow.com/questions/15181290/decouple-unit-of-work-from-services-or-repo/15527444#15527444在这里您将找到一种轻松实现 UnitOfWork 和存储库模式的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)