Avatar
n5ver
Člen
Avatar
n5ver:

Ahoj, mám přes Entity framework načtené objekty otázek. Každá otázka má kolekci odpovědí. Načítám pouze otázku a odpovědi se načtou sami. Když otázku upravím a odešlu do jiné třídy, kde se mi mají uložit do databáze, je kolekce odpovědí disposnutá. Před odesláním nebyla (kontroloval jsem debuggerem). Nevíte někdo, jak tomu zabránit?

 
Odpovědět 8. dubna 17:23
Avatar
Marian Benčat
Redaktor
Avatar
Marian Benčat:
  1. odpovedi se nactou samy, pokud mas zapnuty lazy loading. doporucuji ho vypnout, protoze je nevykonny, nebezpecny a do znacne miry jde o antipattern, jelikoz exposuje databazi.
  2. U lazy loadingu (pri dynamic proxies) NESMIS nic kontrolovat debuggerem, protoze v okamziku, kdy ukazes mysi na tu instanci, tak se ti automaticky zavolají gettery a ty data se nactou..

v tvem pripade dost pravdepodobne nedochazi k disposu jak si myslis.. ale ve skutecnosti to co se ti deje je, ze ty ukazes mysi na ten objekt jeste dokud existuje DB Context, ze ktereho si vytahl Otazku,. .tudiz se v poradku nactou ty odpovedi.. ale kdyz na to neukazes v debuggeru, tak tam posles tu entitu, ale ten moment uz je treba mimo scopy DBContextu (takze uz nefunguje lazy load) a proto jsou ty relacni entity null.

Ns toto pozor,.. idealne poeuzivt lazy loading a dynamic proxies.. ono je to super, le musis dobre vedet co delas a jak to uvnitr funguje ;-)

 
Nahoru Odpovědět 30. června 20:11
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.