我正在开发一个ASP.Net webform应用程序,我想知道我应该保留多长时间的数据上下文。目前,我在每个页面加载上创建一个上下文,并且该上下文用于整个页面加载的每个数据库访问。我是否应该仅在需要它的每个方法中使用上下文,并在方法的末尾处置?我知道一旦我退出上下文的使用块,我就无法访问从上下文中检索到的对象,但这不是我设计的问题。
答案 0 :(得分:3)
您可能还想在此处查看“When should I dispose of a data context?”。
答案 1 :(得分:2)
我会说只要你需要它就保持上下文,这是合适的。在上下文的生命周期和正在发出的请求数之间存在平衡。
您不希望为数据库的每个请求创建上下文,类似地,您可能不希望在应用程序的整个生命周期中维护上下文(在可能的情况下)。
我会查看代码正在执行的有效事务,并期望在每个事务中保持上下文。这种粒度还有助于确保您的代码是模块化和可扩展的(因为依赖性应该更少)。
答案 2 :(得分:1)
我已经按照您描述的方式完成了它,以及基于HTTP请求绑定和销毁的另一种方式。这允许单个页面从头到尾使用一个DataContext。
总的来说,我没有看到以你现在的方式做到这一点的表现。