Asp.Net MVC funkcja Dispose()

0

Czy dobrą praktyką jest użycie funkcji Dispose() w modelu, np.

[Table("Order")]
    public class Order
    {
        EntityDb db = new EntityDb(); 


        ............

         [NotMapped]
        public ICollection<EstateType> EstateTypes
        {
            get 
            {
                var ot = db.OrderTypes.ToList();                
                return ot;
            }        
        }  

    }

Jeśli tak, to jak to zrobić w modelu?
dzięki

1

Ale gdzie byś chciał mieć to Dispose i w jakim celu?
Dispose to raczej na kontekście EF trzeba wołać w obiektach wyższych warstw (serwisach bądź kontrolerach). Ale to i tak lepiej zostawić kontenerowi IoC.

0

Chodziło mi bardziej o zwolnienie "połączenia" (db) z bazą o ile poprawnie to nazywam. Jak sam widzisz mam metody, które pobierają z bazy dane i czy nie warto gdzieś użyć db.Dispose()? - dla zwolnienia zasobu.

0

Jeżeli ręcznie otwierasz połączenie z bazą, to powinieneś je też ręcznie zamykać. Ale nie na poziomie klasy mapowanej na tabelę, tylko gdzieś wyżej, w miejscu, w którym kończysz operacje na bazie. Czyli w praktyce na koniec żądania, czyli wykonania akcji kontrolera (bo pewno korzystasz z EF bezpośrednio w kontrolerach, mam rację?).

0

Mam to w kontrolerze - masz rację. Chciałem się tylko upewnić. Dzięki @somekind

1 użytkowników online, w tym zalogowanych: 0, gości: 1