我在ASP.NET 4中使用最新版本的实体框架4 - CTP 4用于我的项目。该版本(EF4-CTP 4)提供了使用代码优先方法构建对象上下文(或DBContext)的选项。这种方法有其自身的缺点,因此我在应用程序启动时将其构建一次。但是我在许多文章中读到,创建Object Context的单例对象可能并不明智。所以我希望每个会话可以维护一个小的上下文实例。
所以我的问题是: 1.是否建议在多个会话中共享对象上下文? 2.如果我们希望每个会话有一个实例,我们可以构建一次并将其实例用于多个会话吗? 3.如果在会话中共享,我们如何维护并发/提交?
感谢。
答案 0 :(得分:3)
我建议不要使用Singleton 。 Here's a SO question discussing why
这还取决于这是否是一个web / windows应用程序,但是对于web应用程序,我们使用DI容器将OC范围限定为HttpContext。
这样,每个HTTP请求只打开一个连接。