Entity Framework Datenabgleichen
-
Hallo.
Eine Anbindung auf eine Datenbanktabelle über Entityframework wurde realisiert.
Die Tabelle wird grafisch dargestellt. Hier kann ich nun über Buttons Einträge hinzufügen und löschen. Ebenfalls ist es möglich Einträge zu ändern.Nun möchte ich dass die Daten nicht sofort in der Datenbank geändert werden sondern erst nachdem ich zum Schluss auf Ok geklickt habe. Bzw. die Anderungen auf der Oberfläche sollen rückgängig gemacht werden und nichts in der Datenbank gespeichert werden, wenn auf abbrechen geklickt wird.
Ist es nun irgendwie möglich die Daten mit einem Befehl in der Datenbank ab zu gleichen. Oder muss ich mit einer Foreach Schleife über die Liste gehen und prüfen welchen Eintrag ich hinzufügen, ändern oder löschen muss?
Gibts hier Experten zum Thema Entity Framework?
-
Das hat nichts mit Expertenwissen zu tun: Transactions, ef.SaveChanges()/tx.Complete()
MfG SideWinder
-
SideWinder schrieb:
Das hat nichts mit Expertenwissen zu tun: Transactions, ef.SaveChanges()/tx.Complete()
Aber aber. IT-Fachmann ist doch schon, wer einen Treiber installieren kann. Wer was von Transaktionen weiß, ist im Olymp der Software-Experten.
Wird dem Dummvolk doch so seit Jahren eingetrichtert.
-
Ein It Fachmann zeichnet sich dadurch aus qualifizierte Antworten zu geben.
Und nicht irgend ein Müll zu Posten. Denn wenn er das macht hat er einfach zu viel zeit, und surft nur unnütz im Internet und nervt andere. Und als Fachmann kann man so was nicht bezeichnen.
@SideWinder. Danke für deine Antwort. Das mit Transactions ist mir schon bekannt.
Es ist doch aber so dass wenn ich etwas aus der Datenbank lade, ich danach den Context aus performance Gründen in den meisten Fällen wieder schliesse.
Nun habe ich also die lokalen Daten geändert. Hier ist nun die Frage kann ich die bestehenden Daten in der Datenbank durch geänderten Einträge ersetzen.
Oder muss ich bei jeder Änderung direkt auf einen offenen Context zugreifen.
-
Seht ihr und schon hat wieder keiner eine Antwort.
-
MyEntity schrieb:
Es ist doch aber so dass wenn ich etwas aus der Datenbank lade, ich danach den Context aus performance Gründen in den meisten Fällen wieder schliesse.
Das wäre ein wichtiger Hinweis für den Eingangsthread gewesen, ebenso wie die verwendete EF-Technik (Database-First, Model-First oder Code-First).
MyEntity schrieb:
Nun habe ich also die lokalen Daten geändert. Hier ist nun die Frage kann ich die bestehenden Daten in der Datenbank durch geänderten Einträge ersetzen.
Oder muss ich bei jeder Änderung direkt auf einen offenen Context zugreifen
Du musst einen Context zum Schreiben öffnen, und die Objektänderungen diesem bekannt machen. Wie das genau geht ist vermutlich von der verwendeten Technik abhängig, so wie man z.B. im Code-First Ansatz sich dann auch selbst um das Change-Tracking kümmern muss.
Bei der Verwendung von Self-Tracking-Entities (dürfte DB-First/Model-First betreffen) gibt es z.B. ein Beispiel in "Entity Framework using self tracking entities in a multi-layered architecture" (Speziell wenn du dir die Implementation von "SavePost" in dem WCF-Service anschaust).
Wenn du nicht mit Self-Tracking-Entities arbeitest (wie es z.B. in Code-First die Regel ist) wird es wesentlich komplizierter. Hier habe ich auf Anhieb z.B. die folgende Präsentation gefunden: Entity Framework Code First: Working With Disconnected Entities, ebenso gibt es von Pluralsight (kostenpflichtig) mindestens ein Video zu dem Thema, glaube "Entity Framework in the Enterprise" oder zumindest eines der Videos von "Julie Lerman".