gpt4 book ai didi

asp.net - 在 asp.net 应用程序中管理与数据库的连接

转载 作者:行者123 更新时间:2023-12-04 16:57:10 24 4
gpt4 key购买 nike

我想知道,在 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 窗体环境中运行良好(因此没有连接存储在 session 中,并在当前上下文中使用类中的静态方法检索它)

最佳答案

根本不要尝试保持连接。在您使用它的每个范围内实例化它。 .Net 将为您管理一个连接池,无论是在 windows 窗体中还是在 asp.net 中。

试图保持连接是 session 对象或母版页实际上会损害性能,更不用说引入其他问题了。

来自 BC 的评论:

连接字符串必须是相等的字符串才能在同一个池中结束。

关于asp.net - 在 asp.net 应用程序中管理与数据库的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/654571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com