何时使用不同的DataContext

时间:2013-10-10 07:51:15

标签: asp.net-mvc entity-framework

我一直在开发ASP.NET MVC应用程序已有一段时间了。在我的所有项目中,我只有一个数据上下文,但我遇到了一些项目,它们为不同的实体使用不同的数据上下文。我想不出任何使用它。据我所知,它们在不同的事务中工作,因此当CRUD操作抛出异常时,无法进行过去CRUD操作的回滚,因为它们将在那时提交。

我认为应该使用不同上下文的唯一情况是,当您需要分离事务范围或处理多个数据库时。所以我的问题是:

1)为不同的实体提供不同的数据上下文的逻辑是什么?

2)你什么时候使用不同的数据上下文?

2 个答案:

答案 0 :(得分:0)

一个是ReadOnly /轻量级访问,另一个是完整的访问,带有它附带的所有好东西。

但当然,不同的数据上下文通常意味着不同的数据库。

答案 1 :(得分:0)

如果您拥有一个大型项目,尤其是多个开发人员所使用的项目,那么拥有不同的数据上下文通常会更容易。它们只能包含特定功能集所需的实体。

例如,如果您暂时将购物车数据持久保存到数据库,则只需要购物车对象(购物车项目列表,愿望清单等),您不需要客户管理,订单履行中涉及的所有对象,发送给客户的电子邮件等。

如果开发人员在项目的不同部分工作,这也会变得更容易。他们都可以编辑他们的特定数据上下文而不会与其他人混淆。当尝试使用SVN合并数据时,这非常方便。