我想知道,在 asp.net 中管理与数据库的连接的最佳方法是什么。
我的应用程序是使用 N 层架构构建的。DAL 由带有方法的静态类组成,例如
Public Shared Sub Delete( _
ByVal connection As MyConnectionClass, _
ByVal contact_id As Integer, _
ByVal contact_timestamp As Date _
)
With connection.ProcParams
.Add(New StoredProcParam("p_contact_id", contact_id, OracleDbType.Int32))
.Add(New StoredProcParam("p_contact_timestamp", contact_timestamp, OracleDbType.Date))
End With
connection.Execute("PKG_DATA_ACCESS.DeleteContact")
End Sub
这里要注意的一点是,我将连接从 BLL 传递到 DAL。
这是我考虑过的几点,但对我来说似乎都不合适,所以我只是寻求建议。
我是否应该在 MasterPage 中创建连接,将其存储在一个对象中,然后在创建它们时将其传递给我的业务对象(我试图避免的事情)
我是否应该使用静态类创建连接并在其上调用 CreateConnection 之类的方法,从我的业务对象的构造函数(我想要的东西,但我不想每个对象都有一个连接,我想要它为我的对象的所有实例共享,但由于 asp.net 是多线程的,静态类对存储连接没有意义)
理想情况下,该解决方案也应该在 Windows 窗体环境中运行良好(因此在会话中没有存储连接,并在当前上下文中使用类中的静态方法检索它)