我的项目中有多个存储库用于不同的实体,每个存储库都有自己的datacontext(来自我的存储库的基类)。
在我的服务层中,业务逻辑有很多次要求我在多个存储库中添加/编辑对象(因此使用不同的DataContext)。
所以当我最终在多个存储库上执行.SaveContext时。这似乎是一件坏事,理想情况下我应该能够在一个上下文中点击Save,并且一个ado.net调用DB应该执行所有任务。
我在这里做错了什么?
由于
答案 0 :(得分:5)
您需要查看将Unit of Work pattern与您的存储库一起使用,因为它允许您的多个存储库参与单个逻辑事务。
网上有很多关于如何做到这一点的博客文章,包括;
此外还有good tutorial使用MVC和EF以及工作单元+存储库模式。
这是一个很好的图表,解释它是如何工作的;