Diskuze: WPF jak správně na DbContext
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
OH. 3 Soubory, nebo instance? Soubory jsou bezne, ze to plnis třeba ve 30ti
souborech.. Mít vice instanci DB contextu nad 1 DB není dobrý nápad,
protože se pak budes hodně hodně hodně divit, az si vytahnes z jednoho
kontextu Customera, pak ho budeš chtít uložit v druhem a DB context ti začne
hlásit, ze tam mas duplicitní key jeden kolega to řeší par vláken pod tebou
Dobře super díky moc.
Obecně, vyvaruj se použití DBContextu jako nějaké "identity mapy" nebo jako cache.. jinak budeš mít spoustu průserů.. (presto, ze vnitrne je DBContext identity map)
Bohužel je v desktopových velmi oblíbené používat jen 1 instanci Entity framework DBContextu po celý lifespan aplikace... To nese jen samá negativa.. Vyvaruj se tomu pokud možno a měj 1 DBContext = 1 transakce, ale tím nemyslím 1 DB transakce, ale 1 Unit of work (1 logická transakce).
Pokud tedy máš nějaké okno pro vložení nového něčeho, je dobré třeba pro každé 1 vložení vytvořit tu instanci DBcontextu.. na první pohled se zdá člověku, že je to hodně práce pokaždé (muí se natahat konfigurace, sestavit základní graph, předbuildit třeba nějaký GraphQuery)..
na druhou stranu je mnohem dražší uvolňovat nějaký obrovský entity graph, nebo trackovat větší množství entit (přesto, že oni to mají udělaný přes dynamic proxies), či vyhodnocovat všechny entity v grafu při savechanges.
Obě řešení s sebou nesou nevýhody.. proto ti ani neřeknu jednoduše "1 DB context = 1 edit window v tvé aplikaci", povím ti 1 DB Context = 1 UOW.
Co bude v tvé aplikaci 1 UOW bude podle situace a rozhodnutí je na tobě.
Moc děkuju, že si mi to tkhle vysvětlit Jsem hned radši, že vím na čem
jsem v čem jsou výhody - nevýhody atd. díky moc
Zobrazeno 6 zpráv z 6.