UnitOfWork Pattern
-
Habe mir schon ein paar Beispiele über das UnitOfWorkPattern angeschaut. Allerdings verstehe ich noch nicht genau für was ich dar brauche.
In allen Beispielen wird die Commit(); und Rollback(); Funktion geschildert.
Diese Funktionen rufen dann aber immer nur _datacontext.SaveChanges() bzw. _datacontext.Dispose() auf.
Für was brauche ich diese Klasse also?
-
Du "brauchst" sie nicht, und du schreibst sie meist nicht selber. Das ist ein Pattern. Das wird in sehr vielen Frameworks intern eingesetzt, z.B. Hibernate oder Linq to Database.
-
Brauchen tut man so gut wie gar nichts im Leben.
Ich nutze kein Framework, das dies beinhaltet. Ich nutze das EntityFramework und hier gibt es viele Beispiele wo man das selber schreibt.
Die Frage ist wozu?
-
Das EntityFramework nutzt den ObjectContext und das wiederum ist schon das "Unit-of-Work" Pattern. Mechanics hat also nicht Unrecht mit seiner Aussage. Diese Pattern soll einem nur da Leben erleichtern, wenn man mit Daten umgeht und diese geändert/gelöscht/hinzugefügt werden. Durch UoW soll die Transaktionsbehandlung vereinheitlicht und vereinfacht werden, damit du dich besser mit der Business-Schicht befassen kannst.
Netter Artikel dazu:
http://msdn.microsoft.com/en-us/magazine/dd882510.aspx