首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF4: ObjectContext终身?

EF4: ObjectContext终身?
EN

Stack Overflow用户
提问于 2011-03-24 02:26:07
回答 2查看 2.4K关注 0票数 5

我正在开发一个使用实体框架4和SQLCompact4的WPF桌面应用程序。

  • Repository实例化一个ObjectContext,当Repository被垃圾收集时,ObjectContext就会被释放。ObjectContext的生存期与应用程序的生存期相同。
  • 是一个单独的DataStoreManager类,它为应用程序的生命周期创建并保存一个ObjectContext。当需要存储库时,命令从ObjectContext获取一个DataStoreManager引用,并将其传递给needed的构造函数。application.

的生存期是ObjectContext的生存期。

这两种方法都被认为是一种糟糕的做法吗?这两种方法都有绝对的优势吗?这两种方法都被认为是最佳做法吗?开发人员是否比其他开发人员更广泛地接受或使用?谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-24 03:38:06

我会认为,在多个访问中保持ObjectContext打开将是一种糟糕的做法。一旦它被破坏,那么您就需要回收并处理这些损坏。

Repository模式更多地用于数据访问的抽象,但不一定映射到上下文的生存期。

工作模式的单位更多是关于一个或多个数据库/存储库访问的封装,即用例可能让您添加一个新的博客,然后添加第一个默认的帖子,这可能需要调用两个存储库,此时您可能希望共享上下文并将这两个命令封装在事务中。添加第二个帖子可能会在几个小时后完成,并成为一个新的上下文/工作单元。

DJ提到上下文生存期是正确的,这通常是在应用程序级别上设置的。

票数 7
EN

Stack Overflow用户

发布于 2011-03-24 03:07:02

最佳实践取决于用户将如何使用应用程序:以及应用程序的结构。

如果一次只有一个用户使用您的应用程序,您甚至可以将您的实体上下文创建为一个静态实例。

每个请求、每个线程、每个表单都可以使用上下文。

阅读更多:http://blogs.microsoft.co.il/blogs/gilf/archive/2010/02/07/entity-framework-context-lifetime-best-practices.aspx

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5414076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档