什么是最好的终身模型DataContext
?我应该在需要时创建一个新的(也就是函数级别),我应该在每个使用它的类中保留一个(类级别),还是应该创建一个带有静态DataContext的静态类(app-domain)水平)?对此有任何考虑的最佳做法吗?
如果您要存储.SubmitChanges()
稍后要进行的更改,则几乎需要在要执行的操作的整个生命周期内保持相同的数据上下文,否则您将丢失这些更改.
如果您只是查询内容,那么可以根据需要创建它们,但是如果以后您想要重新.SubmitChanges()
编译代码,那么您可以采用有效保持datacontext
整个应用程序的全局模式从最开始.
注意数据上下文是断开的.只有在枚举查询数据时才会建立连接(不是在第一次运行查询时,它是'懒惰'数据类型,因此只在需要时才提供数据),然后立即关闭.在.SubmitChanges()
连接打开以提交更改,然后立即关闭.因此,不要认为保持datacontext
周围保持连接打开,它不会(您可以挂钩StateChange
连接事件,以确认这一点,这是我的确定).
Rick Strahl的博客上有一篇很棒的文章,深入介绍了这个主题,远远超过我在这里提供的答案!