我正在开发第一个使用实体框架的应用程序。我有一个简单的WPF应用程序,它是基于页面的。我在页面的类级别定义了EF上下文,并在页面的load事件中实例化它。然后基本上我只是把它留在那里,使用它作为用户做出各种选择,等等。但是,多年的编程经验使我认为我不应该只是打开这个上下文。每次我需要将它用于某些东西时,我是否应该重新开始,或者这不重要?
我正在使用VS 2010,.NET 4.0。
答案 0 :(得分:5)
EF上下文的设计是短暂的。他们不做大量的内务管理,并且倾向于分配记忆而不用担心在短期内释放它。此外,更改跟踪会持续一段时间并且是累积的,因此上下文存在的时间越长,它分配的更改跟踪的内存就越多。
经验法则,使用必要的最小范围,并将上下文保持在有意义的最短时间内。