W w�tku "windows forms i bazy danych" z 30 wrze�nia tego roku wywi�za�a
si� dyskusja na temat otwierania zamykania i trzymania po��cze� do bazy
danych. Chcia�bym si� zapyta� jak to si� powinno zrobi� w przypadku
dost�pu do bazy danych przez Link2SQL? Czy s� jakie� "best practise" jak
korzysta� z dost�pu do danych za pomoc� Link2SQL.
Obecnie, w mojej aplikacji aby dostaďż˝ siďż˝ do danych w bazie
zaimplementowana jest jedna klasa posiadajaca szereg statycznych metod.
Ka�da metoda na pocz�tku tworzy obiekt typu "DataContext" po czym
nast�puje jakie� tam mielenie danych. czyli
class DataBase
{
public static void Method1()
{
MyDatabaseDataContext context = new MyDatabaseDataContext();
//jakies zapytanie korzystajace z obiektu context.
//...
}
public static void Method2()
{
MyDatabaseDataContext context = new MyDatabaseDataContext();
//jakies zapytanie korzystajace z obiektu context.
//...
}
...
}
Z tych metod bedzie korzysta�o wiele w�kt�w. I w sumie to zastanawiam
si� czy jest to dobre podej�cie czy mo�e lepiej zrobic metody nie
statyczne, stworzyďż˝ obiekt typu DataBase i w konstruktorze tego obiektu
tworzyďż˝ obiekt MyDatabaseDataContext context? Wtedy obiekt
MyDatabaseDataContext nie bedzie tworzony przy ka�dym wywo�aniu metody
tylko bedzie tworzony raz w konstruktorze obiektu DataBase.
Jak to powinno si� prawid�owo zrobi�?
Pozdrawiam
Mariusz
Powiem kr�tko - zasady s� te same :) Wszelkie ORMy nic tu nie zmieniaj�.
Chyba, �e robi� jeszcze co� pod spodem - ale o tym powiniene� doczyta�
siďż˝ w dokumentacji projektu.
tm
to zale�y co chcesz osi�gna�. z punktu widzenia techniki oba rozwiazania s�
prawid�owe, bo za zarz�dzanie po��czeniami do bazy, ich w�a�ciwe zwalnianie
i zamykanie odpowiada DataContext.
natomiast r�nica jest taka:
- nowy DataContext w ka�dej metodzie to pusty cache w ka�dej metodzie -
wszystkie dane id� z bazy. ma�e zu�ycie pami�ci, du�y ruch do bazy
- jeden DataContext per aplikacja - du�y cache po stronie klienta, du�e
zu�ycie pami�ci, mniejszy ruch do bazy
pozdrawiam
Wiktor Zychla
Wielkie dzi�ki. Wystarczy�y 2-3 zdania i wszystko sta�o si� jasne.
Pozdrawiam
Mariusz