SimpleRepository 的生命周期管理
Posted
技术标签:
【中文标题】SimpleRepository 的生命周期管理【英文标题】:Lifetime management of a SimpleRepository 【发布时间】:2009-09-17 03:10:58 【问题描述】:我刚开始使用 SubSonic 3 并使用 SimpleRepository 方法。在桌面应用程序中使用时 SimpleRepository 类的预期生命周期是多少?
您是否希望每次访问数据库时都继续创建一个新实例?我应该为一起发生的每组数据库调用创建一个实例吗?我应该在程序启动时创建一个单例实例并将其用于所有内容吗?
我假设它是后两个选项之一,但我不清楚创建单个实例并将其用于所有调用是否安全。如果这很重要,我将使用 IoC 容器。
【问题讨论】:
【参考方案1】:在桌面会话期间保持活动状态没有害处(确保关闭迁移功能)。当我对 repo 进行性能测试时,我一直保持打开一个,我没有发现任何内存泄漏问题 - 但如果你执行它们等,请务必关闭任何阅读器。
【讨论】:
谢谢罗伯!我想知道为什么关于“确保关闭迁移的东西”的评论?出于某种原因,自动迁移会成为问题吗?它是否会在每次通话或其他事情上造成大量开销(而不是仅在第一次通话时)? 如果它开启,那么每次您与数据库交谈时,它都会检查您的架构并运行比较。这是一个仅限开发的功能:) 嗯..你怎么能关掉“迁移的东西”?..我找不到关于这个问题的任何文档 在 SimpleRepository 的构造函数中 - 将选项设置为 Default。没关系:subsonicproject.com/docs/Using_SimpleRepository 我使用简单存储库的原因之一是因为它是自动迁移的,有没有办法在应用启动时强制迁移,然后将非迁移存储库放入 ioc 容器中?以上是关于SimpleRepository 的生命周期管理的主要内容,如果未能解决你的问题,请参考以下文章