Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Verständnisfrage zur Instanziierung von Entitätscontainern
Christoph1972 - Fr 06.12.13 10:56
Titel: Verständnisfrage zur Instanziierung von Entitätscontainern
Hallo Leute,
ich habe eine Verständnisfrage zur Verwendung von Entitätscontainern. Und zwar werden diese in meinem Buch immer nur mittels using verwendet. Kann ich diese auch global in einer Klasse verwenden?
Also so:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| CPSequencerEntities gridContext = new CPSequencerEntities();
private void comboBoxSeq_SelectionChanged(object sender, SelectionChangedEventArgs e) { string selection = comboBoxSeq.SelectedItem.ToString(); var t = from data in gridContext.SequenceData where data.SequenceName == selection select data;
dataGridSeqence.ItemsSource = t; }
private void buttonSave_Click(object sender, RoutedEventArgs e) { gridContext.SaveChanges(); } |
Was spricht gegen mein Vorgehen? Die Connection sollte nach meinem Verständnis doch nicht dauerhaft geöffnet sein, da diese im Hintergrund bei der Mengenabfrage geöffnet/geschlossen wird.
Über Anregungen und Tipps freue ich mich wie immer sehr! :-)
Ralf Jansen - Fr 06.12.13 12:20
Du meinst einen ObjectContext keinen EntityContainer richtig?
Um die Connection brauchst du dir keine Sorgen machen das ist korrekt. Du solltest den Context solange verwahren wie du Objekte benutzt die vom Context getrackt werden. Sonst fliegen dir deine Navigational Properties um die Ohren wenn da versucht wird ~Lazy~ Daten aus der DB zu laden aber dein Context ist disposed. Zumindest wenn du Lazy Loading nicht abgeschaltet hast.
Trotzdem solltest du dafür sorgen das deine Klasse den Context sauber disposed wenn die Klasse der Verwalter des Contextes ist und ihn nicht nur benutzt. Wenn das die verwaltende Klasse ist würde ich die auch IDisposable implementieren lassen und den Context in dessen Dispose mit disposen.
Christoph1972 - Fr 06.12.13 14:22
Ralf Jansen hat folgendes geschrieben : |
Du meinst einen ObjectContext keinen EntityContainer richtig?
|
OK, das meinte ich dann wohl. Ist noch alles Neuland für mich ;-)
Zitat: |
Du solltest den Context solange verwahren wie du Objekte benutzt die vom Context getrackt werden. Sonst fliegen dir deine Navigational Properties um die Ohren wenn da versucht wird ~Lazy~ Daten aus der DB zu laden aber dein Context ist disposed. Zumindest wenn du Lazy Loading nicht abgeschaltet hast.
|
Genau das wollte ich hören, das gefällt mir sehr gut.
Zitat: |
Trotzdem solltest du dafür sorgen das deine Klasse den Context sauber disposed wenn die Klasse der Verwalter des Contextes ist und ihn nicht nur benutzt. Wenn das die verwaltende Klasse ist würde ich die auch IDisposable implementieren lassen und den Context in dessen Dispose mit disposen. |
Aktuell möchte ich es so strukturieren, dass der ObjectContext für die gesamte Programmlaufzeit bestehen bleibt.
Das ETF mit Linq und Databinding ist doch sehr praktisch, ich bin wirklich begeistert!
Vielen Dank für die Unterstützung!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!