我正在编写一个非常简单的 ASP.net 项目。它使用 Linq2Sql DataContext 来访问存储过程。有一个 IDisposable 类在它的构造函数中创建一个新的 DataContext 并在它的 dispose 中处理它。
只要有可能,我就会将以下请求组合在一起:
using(var dc = new MyDataAccessClass())
{
//All the data requests in here
}
// Do stuff with the data here
所以在整个代码中有很多这样的代码,主要是在 UserControls 中,我只是想在起始页(或母版页)的 PageLoad 中创建单个 DataAccess 类是否有意义,将其存储在 Session内存,并在所有 UserControls 等中引用,然后在 PreRender 阶段将其处理掉。
所以这是我的问题,这是一个坏主意吗?我想这将涉及到数据库的一些悬空连接,因为异常或调试会停止 PreRender 运行。也许检查 MasterPage 的 Load 以查看该会话变量中是否有任何内容并处理它,如果有的话,会对它进行排序。
或者有没有一种更聪明的方法可以在整个页面生命周期中共享 DataContext 而您的 DBA 不想用键盘敲击您?