Tôi muốn biết, cách tốt nhất để quản lý kết nối với cơ sở dữ liệu trong asp.net là gì.Quản lý kết nối đến cơ sở dữ liệu trong ứng dụng asp.net
Ứng dụng của tôi được tạo bằng kiến trúc N-Tier. Các Dal bao gồm các lớp học tĩnh với các phương pháp như
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
Điểm cần lưu ý ở đây, là tôi vượt qua kết nối đến DAL từ BLL.
Đây là những điểm tôi đã cân nhắc, nhưng không có điểm nào trong số đó có vẻ ổn với tôi, vì vậy tôi chỉ yêu cầu một lời khuyên.
Tôi có nên tạo các kết nối trong MasterPage, lưu nó trong một đối tượng, sau đó vượt qua nó để đối tượng doanh nghiệp của tôi như tôi tạo ra chúng (điều tôi đang cố gắng để tránh)
Tôi có nên tạo một kết nối sử dụng một lớp tĩnh và gọi một phương thức như CreateConnection trên nó, từ hàm tạo của đối tượng nghiệp vụ của tôi (Tôi muốn, nhưng tôi không muốn có kết nối cho mỗi đối tượng, tôi muốn nó được chia sẻ cho tất cả các cá thể đối tượng của tôi, nhưng vì asp.net là đa luồng, một lớp tĩnh không có ý nghĩa để lưu trữ các kết nối)
Lý tưởng nhất, giải pháp cũng sẽ hoạt động tốt trong môi trường Windows Forms (Vì vậy, không có kết nối lưu trữ trong sessi bật và lấy nó bằng phương pháp tĩnh trong một lớp, đối với ngữ cảnh hiện tại)
Chia sẻ cùng một kết nối trên toàn bộ ứng dụng không phải lúc nào cũng là một phương pháp hay. Hãy suy nghĩ về một trang web với hàng trăm yêu cầu mỗi giây, tất cả đều trải qua kết nối tương tự với cơ sở dữ liệu ... –
Tôi đã suy nghĩ nhiều hơn về kết nối cho mỗi người dùng, nhưng câu trả lời của Neil N là tốt, đó là điều tôi chưa từng nghĩ đến. – Martin