Dav*_*man 5 entity-framework repository entity-framework-4
我正在开发一个使用Entity Framework 4和SQL Compact 4的WPF桌面应用程序.我看过两种不同类型的Repository
类:
的Repository
实例化ObjectContext
,其设置时的Repository
是垃圾收集.该生命ObjectContext
周期与应用程序的生命周期相同.
一个单独的DataStoreManager
类创建并保存ObjectContext
应用程序的生命周期.当需要存储库时,命令从中获取ObjectContext
引用 DataStoreManager
并将其传递给New Repository的构造函数.该生命ObjectContext
周期是应用程序的生命周期.
这两种方法都被视为不良做法吗?是否存在任何绝对优势?这两种方法都被认为是最佳做法 是否被开发人员广泛接受或使用?谢谢你的帮助.
The best practice is depended on how your users are going to use the application: And how your application is structured.
if there is only one user using your application at one time, you can even create your entity context as a static instance.
context can be used per request, per thread, per form.
我原以为在多次访问中打开ObjectContext会是不好的做法.一旦它被破坏,那么你需要回收并处理腐败.
存储库模式更多地用于抽象数据访问,但不一定映射到上下文的生命周期.
工作单元模式更多地是关于一个或多个数据库/存储库访问的封装,即用例可能让您添加新的博客然后添加第一个默认帖子,这可能需要调用两个存储库,此时您可能希望共享上下文并将这两个命令封装在事务中.添加第二篇文章可能会在几小时后完成,并成为新的上下文/工作单元.
DJ提到你通常在应用程序级别设置的上下文生命周期是正确的.