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。
我是否应该在母版页中创建连接,将其存储在对象中,然后在创建业务对象时将其传递给业务对象(这是我试图避免的事情)
我是否应该使用静态类创建连接,并从业务对象的构造函数中调用CreateConnection之类的方法(这是我喜欢的,但我不希望每个对象都有一个连接,我希望为我的对象的所有实例共享它,但由于asp.net是多线程的,静态类存储连接没有意义)
理想情况下,该解决方案也应该在Windows窗体环境中运行良好(因此,对于当前上下文,没有连接存储在会话中,并使用类中的静态方法检索它)