VS2013, kod EF6 pierwszy, MVC, (VB)Jakie są plusy i minusy używania jednego lub wielu DbContext z EF?
Chciałem lepiej zrozumieć plusy i minusy używania jednego kontekstu lub podziału DbSets na wiele kontekstów. Czytałem niektóre z dawnych postów SO na wielu DbContexts i naprawdę nie znalazłem tego, czego szukałem; kompleksowe oświadczenie o tym, kiedy i gdzie należy używać wielu DbContextów.
W przypadku pojedynczego użytkownika korzystającego z programu takiego jak Windows Forms na własnym sprzęcie, wydaje się, że nie ma powodu, aby mieć wiele kontekstów dla łatwości pracy z kodem.
W przypadku aplikacji internetowej, która uruchamia duży program biznesowy dla wielu firm, wydaje się, że wiele DbContextów ma kluczowe znaczenie dla bezpieczeństwa i administracji.
Ale chciałbym uzyskać potwierdzenie, jeśli dobrze myślę o tym pytaniu. Wszystko, co mogę myśleć o to, co następuje, ale jestem zupełnie nowy w tym środowisku:
Plusy jednym kontekście:
- Kodowanie ma tylko jeden kontekst do czynienia z
- (Czy istnieją problemy z relacjami całej kontekstach?)
- migracje są łatwiejsze, ponieważ istnieje tylko jeden folder migracji i proces
- łatwiej uzyskać kompleksową d iagram skonstruowany w SSMS lub EDMX
- (Link here uzyskania diagramy EDMX podczas korzystania pierwszy kod)
minusy jednym kontekście:
- bezpieczeństwa może być problemem dla wielu sieci klientów w aplikacji dla przedsiębiorstw
- (Czy jest to problem dotyczący prostych witryn z prostymi uprawnieniami?)
- Niektórzy SO posty wydają się sugerować, czas reakcji jest kwestią
- (Jaki jest mechanizm tutaj?)
To wszystko, co mam. Nie wiem wystarczająco dużo, aby w pełni zrozumieć obie strony i biorąc pod uwagę różne środowiska, w których możemy pracować, wydaje się, że odpowiedź na jeden lub wiele kontekstów będzie inna.
Pracuję obecnie nad stroną internetową, która będzie miała członkostwo, a także aplikację do pobrania, która będzie osobistą aplikacją działającą na sprzęcie użytkownika. W tym przypadku myślę, że jeden kontekst dla obu ma sens, ale zanim w to zagłębię się, chciałbym prosić o dyskusję na ten temat. Przypuszczam, że ci, którzy są nieco nowi w środowisku, będą nadal mieć te same pytania.
Zauważyłem również, że Microsoft uznał za stosowne dodać wiele możliwości kontekstowych do EF w EF6 i wyższych, więc wyraźnie muszą istnieć pewne środowiska programistyczne, które powodują istotne powody, by mieć wiele kontekstów.
Dzięki za wejście.
Pozdrawiam, Alan
MS dodał wiele kontekstów głównie dlatego, że duże konteksty mają problemy z wydajnością. rozbicie ich zmniejsza te problemy. –
Wkrótce powiedziałbym, że wiele DbContextów jest użytecznych, gdy chcesz podzielić swoją domenę na oddzielne części i stear ich cykl życia niezależnie przez cały cykl życia projektu. Proponuję przeczytać o Domain Driven Development (http://msdn.microsoft.com/en-us/magazine/dn342868.aspx i http://msdn.microsoft.com/pl-pl/magazine/jj883952(en- us) .aspx) Julie Lerman, jeśli chcesz pogłębić temat w tym temacie. – Fka
Świetne linki, dzięki. W szkole uczyłem się DDD, ale jest inaczej, kiedy robisz to naprawdę, a te artykuły wydają mi się teraz bardziej skoncentrowane. @Erik - dostałem to w dużych kontekstach; Jestem pewien, że to nie będzie mój problem przez jakiś czas, ale doceniam zrozumienie, dlaczego stworzyli wiele możliwości kontekstowych. – Alan