使用EFProfiler用于剖析一些我们实体框架应用程序之后(绝对奇妙的工具BTW!),看来,在大多数情况下,所有的对象上下文都没有关闭。
例如,在本地运行之后,EF探查告诉我,有326对象上下文的打开,但只有1被关闭?
所以我的问题是,我应该担心吗? 或者是自包含的实体框架之内?
使用EFProfiler用于剖析一些我们实体框架应用程序之后(绝对奇妙的工具BTW!),看来,在大多数情况下,所有的对象上下文都没有关闭。
例如,在本地运行之后,EF探查告诉我,有326对象上下文的打开,但只有1被关闭?
所以我的问题是,我应该担心吗? 或者是自包含的实体框架之内?
如果你不使用IoC容器有反正你可以在每个请求后手动关闭ObjectContexts,例如在您的Global.asax的结束请求,从而模拟“每个请求”的生活方式为您的环境?
ObjectContexts最终将安置,如果你的应用程序不持有到他们明确的,但一般来说,你应该尝试确定性尽快处理掉,你与他们做了。 在大多数情况下,他们将保留数据库连接,直到它们被布置。 在我目前的Web应用程序,我们使用IoC容器(Autofac),以确保任何ObjectContext的设置在请求结束的请求过程中打开,而不必等待垃圾回收。
我建议你还是担心,并设法解决问题,因为上下文对象是相当“笨重”。 如果你有太多的应用程序最终可能最终会使用更多的内存比它需要和IIS会更频繁地重新启动应用程序,然后...