2011-09-16 171 views
1

我在我的项目中为不同的实体提供了多个存储库,每个存储库都有自己的datacontext(它来自我的存储库的基类)。服务层和存储库性能问题

在我的服务层,有很多次业务逻辑要求我在多个存储库中添加/编辑对象(因此inturn使用不同的DataContext)。

因此,当我最终在多个存储库上执行.SaveContext。这似乎是一件坏事,理想情况下,我应该能够在一个上下文中保存并且一个ado.net调用数据库应该执行所有任务。

我在这里做错了什么?

感谢

回答

5

你需要看使用Unit of Work pattern你的资料库,因为它允许你的多个存储库参加一个单一的逻辑事务。

网络上有大量关于如何做到这一点的博客帖子,其中包括:

而且,这里是一个good tutorial通过使用MVC和EF与工作+ Repository模式的单位走。

由于这是一个很好的图解释它是如何工作的;

enter image description here

+0

甜..感谢这么多真棒的例子。我不知道这个模式的名称,这正是我的架构所缺少的。现在,我实现了它在一个4小时的直接坐在..它是干净的哨子,更快! – MoXplod