gpt4 book ai didi

entity-framework - EF4 : ObjectContext Lifetime?

转载 作者:行者123 更新时间:2023-12-04 16:49:10 25 4
gpt4 key购买 nike

我正在开发一个使用 Entity Framework 4 和 SQL Compact 4 的 WPF 桌面应用程序。我看到了两种不同风格的 Repository类:

  • Repository实例化 ObjectContext ,当 Repository被垃圾收集。 ObjectContext 的生命周期与应用程序的生命周期相同。
  • 单独的 DataStoreManager类创建并持有 ObjectContext在应用程序的整个生命周期内。当需要存储库时,命令会获取 ObjectContext来自 DataStoreManager 的引用并将其传递给 New Repository 的构造函数。 ObjectContext 的生命周期是应用程序的生命周期。

  • 这两种方法都被认为是不好的做法吗?任何一个都比另一个有绝对优势吗?这两种方法都被认为是最佳实践吗?开发人员是否比另一个更广泛地接受或使用?谢谢你的帮助。

    最佳答案

    我原以为通过多次访问保持 ObjectContext 打开是不好的做法。一旦它被损坏,那么您将需要回收并处理损坏。

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

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

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

    关于entity-framework - EF4 : ObjectContext Lifetime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5414076/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com