在 EF 5 中使用 ObjectContext 时,应该是单例还是每次都像 SqlConnection 一样创建新实例更好。如果是这样,为什么?
问问题
726 次
1 回答
3
尽快创建和处置上下文。引用自guidelines on MSDN
:
在决定上下文的生命周期时,以下是一些一般准则:
使用长时间运行的上下文时,请考虑以下事项:
随着您将更多对象及其引用加载到内存中,上下文的内存消耗可能会迅速增加。这可能会导致性能问题。
请记住在不再需要上下文时将其处理掉。
如果异常导致上下文处于不可恢复状态,则整个应用程序可能会终止。随着查询和更新数据的时间之间的差距越来越大,遇到并发相关问题的机会也会增加。
使用 Web 应用程序时,为每个请求使用一个上下文实例。
使用 Windows Presentation Foundation (WPF) 或 Windows 窗体时,请为每个窗体使用一个上下文实例。这使您可以使用上下文提供的更改跟踪功能。
于 2013-07-07T15:21:51.310 回答