Chciałbym wiedzieć, jaki byłby najlepszy sposób zarządzania połączeniem z bazą danych w asp.net.Zarządzanie połączeniem z bazą danych w aplikacji asp.net
Moja aplikacja jest zbudowana w oparciu o architekturę N-Tier. DAL składa się z klas statycznych metod, takich jak
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
Punkt zauważyć tutaj, że mogę przekazać połączenie do DAL z BLL.
Oto punkty, które rozważałem, ale żaden z nich nie wydaje mi się w porządku, więc proszę o radę.
powinienem stworzyć połączenia w MasterPage, należy go przechowywać w obiekcie, a następnie przekazać je do mojego obiektów biznesowych jak je utworzyć (rzeczy staram się unikać)
należy utworzyć połączenie za pomocą klasy statycznej i wywoływanie na niej metody, na przykład CreateConnection, z konstruktora obiektów biznesowych (Coś, co chciałbym, ale nie chcę mieć połączenia z obiektem, chciałbym, aby było udostępniane dla wszystkich instancji z moich obiektów, ale ponieważ asp.net jest wielowątkowy, klasa statyczna nie ma sensu przechowywać połączeń)
Idealnie, rozwiązanie powinno również działać dobrze w środowisku Windows Forms (więc nie ma przechowywania połączeń w sessi włączanie i pobieranie statycznej metody w klasie w bieżącym kontekście)
Udostępnianie tego samego połączenia w całej aplikacji nie zawsze jest dobrą praktyką. Pomyśl o stronie z setkami żądań na sekundę, wszystkie przechodzą przez to samo połączenie z bazą danych ... –
Myślałem raczej o połączeniu na użytkownika, ale odpowiedź Neila N jest w porządku, to jest coś, o czym nie myślałem. – Martin