使对象上下文(EF4 / CTP4)线程安全吗?

时间:2010-11-10 04:40:08

标签: c# entity-framework-4 entity ctp4

我在ASP.NET 4中使用最新版本的实体框架4 - CTP 4用于我的项目。该版本(EF4-CTP 4)提供了使用代码优先方法构建对象上下文(或DBContext)的选项。这种方法有其自身的缺点,因此我在应用程序启动时将其构建一次。但是我在许多文章中读到,创建Object Context的单例对象可能并不明智。所以我希望每个会话可以维护一个小的上下文实例。

所以我的问题是: 1.是否建议在多个会话中共享对象上下文? 2.如果我们希望每个会话有一个实例,我们可以构建一次并将其实例用于多个会话吗? 3.如果在会话中共享,我们如何维护并发/提交?

感谢。

1 个答案:

答案 0 :(得分:3)

我建议不要使用Singleton Here's a SO question discussing why

这还取决于这是否是一个web / windows应用程序,但是对于web应用程序,我们使用DI容器将OC范围限定为HttpContext。

这样,每个HTTP请求只打开一个连接。