【问题标题】:How long should I keep my LINQ DataContext around? ASP.Net page我应该将 LINQ DataContext 保留多长时间? ASP.Net 页面
【发布时间】:2010-01-21 16:04:44
【问题描述】:
我正在开发一个 ASP.Net 网络表单应用程序,我想知道我应该将数据上下文保留多长时间。目前我在每个页面加载时创建一个上下文,并且该上下文用于整个页面加载的每个数据库访问。我是否应该仅在需要它的每个方法中使用上下文,并在方法结束时处理?我知道一旦退出上下文的 using 块,我就无法访问从上下文中检索到的对象,但这不是我的设计问题。
【问题讨论】:
标签:
c#
asp.net
linq-to-sql
datacontext
【解决方案2】:
我想说,只要您需要并且合适,您就可以保留上下文。在上下文的生命周期和发出的请求数量之间需要取得平衡。
您不想为对数据库的每个请求创建上下文,同样,您可能不想在应用程序的整个生命周期(如果可能的话)维护上下文。
我会查看代码正在执行的有效事务,并希望在每个事务中维护上下文。这种粒度还应该有助于确保您的代码是模块化和可扩展的(因为依赖项应该更少)。
【解决方案3】:
我已经按照您描述的方式以及基于 HTTP 请求绑定和销毁的另一种方式完成了它。那就是允许单个页面从头到尾使用一个 DataContext。
总体而言,按照您目前的做法,我没有看到性能受到很大影响。