ObjectContext Long living object?
-
Hallo,
ich hab mal eine Frage. Ich arbeite mit MVVM und dem EF. Wie macht ihr das eigentlich so... Ich lege mir als private static mein ObjectContext an und arbeite solange damit, bis die Anwendung geschlossen wird. Ist das so ok oder sollte man das immer nur kurzzeitig erstellen und dann sofort wieder schließen?
-
Informier dich mal über das "Unit of work" Pattern. Hier zum Beispiel einen Artikel, wie dieses mit NHibernate angewendet wird, aber ich denke, man kann das Prinzip leicht auf EF portieren:
http://msdn.microsoft.com/en-us/magazine/ee819139.aspxGrüssli
-
sollte man immer nur kurzzeitig erstellen und dann sofort wieder schließen
-
Hey,
da bin ich wieder. Schon ein wenig was her aber ich hätte zu dem Thema nochmal eine Frage. Also nach dem ich in den letzten Wochen sehr viel über das EF gelesen habe, stellte ich trotzdem ein Problem bei mir fest. Ich habe eine Tabelle mit Relation. Diese Tabelle binde ich an eine ListView(WPF). Nun habe ich in meinem Beispiel alles in "using"`s verpackt und benutze somit den ObjectContext so kurz wie möglich. Leider musste ich aber nun feststellen, dass in meiner ListView, in der ich auch auf die Relationen zugreife, keine Werte drin stehen. Der Connection wird eben nach dem Austritt aus der sing geschlossen und die ListView kann die Relationen nicht mehr laden. Wie sollte man da eurer Meinung nach vorgehen. Ich dachte immer, dass LazyLoading mir das abnehmen würde. Aber die bietet mir ja nur die MÖGLICHKEIT darauf zuzugreifen. Also auf die Relationen. Aber solange ich die in dem using Bereich nicht anrühre lädt der auch nix nach. Wäre ein statischer ObjectContext nicht doch sinnvoller?
-
secondsun schrieb:
Wäre ein statischer ObjectContext nicht doch sinnvoller?
Nein. Hast du den Artikel gelesen, den ich verlinkt habe? Scheint mir irgendwie nicht der Fall zu sein. Es geht nicht darum auf Teufel komm raus kurz wie möglich zu erreichen. Es geht um eine sinnvollste kürzeste Zeit. Im Bereich von Desktop-Applikationen bindet man dies meistens an Dialogs, solange eine Seite sichtbar ist oder ähnliche Arbeitsschritte.
Grüssli