0

在 EF 5 中使用 ObjectContext 时,应该是单例还是每次都像 SqlConnection 一样创建新实例更好。如果是这样,为什么?

4

1 回答 1

3

尽快创建和处置上下文。引用自guidelines on MSDN

在决定上下文的生命周期时,以下是一些一般准则:

  • 使用长时间运行的上下文时,请考虑以下事项:

  • 随着您将更多对象及其引用加载到内存中,上下文的内存消耗可能会迅速增加。这可能会导致性能问题。

  • 请记住在不再需要上下文时将其处理掉。

  • 如果异常导致上下文处于不可恢复状态,则整个应用程序可能会终止。随着查询和更新数据的时间之间的差距越来越大,遇到并发相关问题的机会也会增加。

  • 使用 Web 应用程序时,为每个请求使用一个上下文实例。

  • 使用 Windows Presentation Foundation (WPF) 或 Windows 窗体时,请为每个窗体使用一个上下文实例。这使您可以使用上下文提供的更改跟踪功能。

于 2013-07-07T15:21:51.310 回答