W środowisku C# MVC EF, widziałem wiele przykładów, które po prostu tworzy nowy DbContext
, gdy potrzebna jest wstawka lub zapytanie, a następnie zamknij/zwolnij (wielu używa "używania" do automatycznego zamykania/wydawania).Czy DbContext jest kosztowną operacją?
Czy niektóre wyszukiwania w tej sprawie, ale nie może znaleźć dobrej odpowiedzi, ale tworzy DbContext
bardzo tanie i szybkie działanie?
Na przykład, myśląc o typowej aplikacji MVC, na stronie znajduje się wiele "komponentów", takich jak nagłówki, paski boczne, główna zawartość itp., A także w nietrywialnej konfiguracji, każdy komponent będzie miał swoje własna indywidualna logika i kod - czy w każdym z tych składników powinienem utworzyć nowy DbContext
? (jeśli tak, to czy system automatycznie buforuje wynik zapytania? - na przykład powszechnym przypadkiem użycia jest to, że w każdym z tych składników musi on wyszukiwać w bazie danych bieżące ustawienia witryny, które są tym samym wierszem w stół).
To jest coś, co * łatwo * przetestowane i obserwowane przez * ciebie *. Wypróbuj i przekonaj się! –
@ Cubicle.Jockey Gdzie indziej ma to zrobić? Kontroler wydaje się być dobrym miejscem. –
Nie zamieszczam tego jako odpowiedzi, ponieważ nie mogę znaleźć oryginalnej strony w MSDN, ale konteksty są przygotowane do tworzenia i niszczenia wydajnie, jedyną częścią kosztowną w tworzeniu kontekstu jest zależne połączenie DB i EF będzie zarządzaj nim, nie zamknie go po zniszczeniu kontekstu, ma pulę wewnętrzną, która zarządza nimi – Gusman