Vis*_*hal 8 c# datacontext static entity-framework-4
我正在使用实体框架4,我在其中一个基类中为模型创建了一个datacontext.但我正在分析它,每次我尝试查询时都会创建上下文,所以我想把它设置为静态,这样它只创建一次并且总是重用.
您是否认为这是最好的方法,数据/对象上下文应始终保持静态?使其静止是否有任何缺点?数据上下文应该是静态的还是非静态的?欢迎任何想法或建议.
不,他们不应该永远是静态的.
实际上,您可以使用静态数据上下文而不是非静态等效项来运行更多问题(例如来自单个会话的多个用户从多个线程访问相同的上下文).
我不打算详细解释,因为有一些非常好的博客文章涵盖了细节:
Linq to SQL DataContext终身管理 - Rick Strahl的Web日志(似乎不太相关,但仍然是)
使实体框架(v1)工作,第1部分:DataContext终身管理(如果您不喜欢Rick的解决方案,可能的替代方案)
数据上下文应该始终是静态的吗?
不,他们应该(几乎*)永远不会是静止的.DataContext创造起来很便宜,因为它们被用作工作单元.因此,DataContext每个"对话" 应该有一个(无论你的上下文发生什么意思).
*:正确的答案可能是它们永远不应该是静态的,但我总是怀疑编程建议总是或永远不会.因此,这比任何事都更令人畏缩.