Mam klasę jednostki, która jest automatycznie generowana z mojego modelu bazy danych. Ta klasa dziedziczy ObjectContext, który inwertuje IDisposable.Utylizacja kontekstu obiektu w strukturze jednostki 4
Utworzyłem repozytorium, które ma różne metody, które wykorzystują pojedyncze wystąpienie obiektu encji do interakcji z bazą danych.
Auto generowane klasa
public partial class DevEntities : ObjectContext
{
public const string ConnectionString = "name=DevEntities";
public const string ContainerName = "DevEntities";
Repository klasy
DevEntities db = new DevEntities();
public Customer GetCustomerByID(int id)
{
var customers = db.Customers.FirstOrDefault(c => c.CustomerId == id);
return customers;
}
public Customer GetCustomerByPasswordUsername(string email, string password)
{
var customers = db.Customers.FirstOrDefault(c => c.Email == email && c.Password == password);
return customers;
}
Z tego widać, że robię wiele odwołań do instancji DB. Moje pytanie brzmi: czy lepiej jest utworzyć instancję nowej DevEntity w ramach każdej metody, dzięki czemu będę w stanie zaimplementować instrukcję using, a więc zapewnić poprawną likwidację, czy też moja obecna implementacja jest OK?
Gdybym to zrobił, musiałbym przesłonić metodę usuwania IDisposable, tak myślę? Więc jak to może wyglądać? Czy unieszkodliwiłby obiekt, a każda metoda odwoływałaby się do tej metody, a tym samym spychała tam przykład? – hoakey
Nie, nie musisz go przesłonić, implementujesz interfejs w swoim repozytorium; teraz możesz użyć repozytorium w instrukcji using, więc klasa zostanie automatycznie usunięta po zakończeniu użytkowania. – Femaref
Przepraszam za moją grubość, nadal nie rozumiem, jak to by działało. Czy mógłbyś jeszcze trochę bardziej rozwinąć? Wielkie dzięki. – hoakey