2010-10-22 156 views
1

我有一个使用实体框架的asp.net web应用程序。应用程序数据层使用Jordan Van Gogh发现的方法here.简而言之,此方法使用每个http请求的一个共享objectcontext实例,并使用继承IHttpModule的AspNetObjectContextDisposalModule进行处理。多实体框架模型和objectcontext

我已经添加了另一个项目,一些附加的表格,并设置了一个数据层,将上述示例复制到我的应用程序中。这个额外的项目和随后的不同数据模型都可以完美运行我可以使用2个数据层执行不同的操作,但看起来没有任何后果。当然,对象集在2个数据层中是不同的,因为它们表示不同的表。

我的问题是这样的:

是这种方法是一个好主意?我获得了幕后的大部分内容,但这两种模型都使用System.Data.Objects.ObjectContext。如果用户A使用第一个数据层执行操作,同时用户B使用第二个数据层执行操作,那么“shared”objectcontext会出现问题吗?

谢谢。并且温柔。

编辑 注:我使用不同的OC键

+0

如果我的理解正确,那么您为每个请求使用一个新实例,对吗?由于两个用户不能共享一个请求,他们应该使用不同的上下文实例。 – StriplingWarrior 2010-10-22 22:41:20

+0

正确。我猜我有点惊慌,因为objectcontext有这种奇特的感觉。我只是想要一些反馈来保证我自己正确地做到这一点。 – trevorc 2010-10-22 22:47:19

回答

1

您应该确定:

  • 对象上下文是每个HTTP请求,以便从不同的用户的情况下也不会互相干扰
  • 每个上下文更新不同的表格,以便它们不会互相干扰

您可能需要注意的一件事是两个用户同时更新相同的数据。

+0

谢谢设拉子。这也是我的理解。我只是想要一些外部验证。我有一个if(context.isAttached)方法来处理同时更新,所以我认为在这方面我没问题。感谢您的帮助。 – trevorc 2010-10-25 14:59:02