我正在开发一个MVC项目,遵循分层架构。在阅读和研究网络后,我发现拥有单独的层是最优的方法。因此,我的层包括:
BLL调用数据访问层:
现在,我的BLL依赖于数据访问层,因为领域对象在BLL中,所以两者互相引用。
我已经花费了几周时间进行严格的搜索,但是无法找到解决方法。
我已经阅读了业务逻辑层和数据访问层:循环依赖,但它并没有完全解决我的问题。
一些网站支持分层架构,有些声称洋葱式架构更好。例如:这篇文章声称整个方法(控制器-> BLL-> DLL)不是最优的。
1. 我如何克服循环依赖?
2. 我构建此Web应用程序的方法是否有效?
- 表示层:控制器、视图
- 业务层:单独的类库项目(包括领域模型(代表表实体)、业务逻辑服务、用于ViewModels的单独文件夹)
- 数据访问层:包含对数据库的调用(SQL语句、连接)
BLL调用数据访问层:
public PartnerOperation(IDataAccess dataRepository)
{
_dataAccess = dataRepository;
}
public void InsertRequest(PartnerRequestModel partnerRequestModel)
{
_dataAccess.InsertIntoDB(partnerRequestModel); //Domain object passed to DLL method
}
现在,我的BLL依赖于数据访问层,因为领域对象在BLL中,所以两者互相引用。
我已经花费了几周时间进行严格的搜索,但是无法找到解决方法。
我已经阅读了业务逻辑层和数据访问层:循环依赖,但它并没有完全解决我的问题。
一些网站支持分层架构,有些声称洋葱式架构更好。例如:这篇文章声称整个方法(控制器-> BLL-> DLL)不是最优的。
1. 我如何克服循环依赖?
2. 我构建此Web应用程序的方法是否有效?