3 Stimmen

Was ist eine Arbeitseinheit im Zusammenhang mit Datenbankobjekten?

Was ist, vereinfacht ausgedrückt, eine Arbeitseinheit in Bezug auf Datenbankobjekte? Ich recherchiere, wie man Datenbanktabellen in C#-Klassen konvertiert, und ich stoße häufig auf diesen Begriff, aber jeder scheint ihn so zu beschreiben, als ob man bereits wissen sollte, was er ist.

6voto

Reed Copsey Punkte 536986

Ich zitiere Martin Fowler hier, weil ich denke, dass seine Bedeutung eine der klarsten und verständlichsten ist, die ich kenne:

In einer Unit of Work wird alles festgehalten, was Sie während eines Geschäftsvorgangs tun und was sich auf die Datenbank auswirken kann. Wenn Sie fertig sind, wird ermittelt, was alles getan werden muss, um die Datenbank als Ergebnis Ihrer Arbeit zu ändern.

2voto

Robert Harvey Punkte 173098

Im Grunde genommen handelt es sich um die Arbeit, die erforderlich ist, um eine atomare Aktion durchzuführen, z. B. eine Überweisung zwischen zwei Girokonten.

Beispiel (in Pseudocode)

Procedure TransferBetweenAccounts(Amount, Account source, Account target)
   Begin Transaction
      Debit source account By (Amount)   }----Unit of
      Credit target account By (amount)  }----Work 
   End Transaction

   If Transaction Failed
       Roll Back

Ein guter MSDN-Artikel, der Folgendes beschreibt Arbeitseinheit und Beharrlichkeit Unwissenheit ist hier: http://msdn.microsoft.com/en-us/magazine/dd882510.aspx

0voto

RichardOD Punkte 28349

In LINQ to SQL ist eine Arbeitseinheit definiert als ( http://msdn.microsoft.com/en-us/library/bb546187.aspx ):

Eine Instanz eines Datenkontexts sollte eine Lebensdauer von einer "Arbeitseinheit" haben. In einer lose gekoppelten Umgebung kann eine Arbeitseinheit typischerweise klein, vielleicht eine optimistische Transaktion, einschließlich eines einzigen Aufrufs von SubmitChanges. Daher wird der Daten Kontext erstellt und im Methodenumfang. Wenn die Arbeitseinheit Aufrufe zu Geschäftsregeln enthält Logik enthält, dann sollten Sie im Allgemeinen die DataContext-Instanz für die gesamte gesamte Operation

Das Verständnis der Arbeitseinheit ist wichtig für den Erfolg mit LINQ to SQL. Auf dieser Seite (Ein Aktualisierungsszenario) erfahren Sie, wie das Muster der Arbeitseinheit in LINQ to SQL passt:

http://aspalliance.com/1414_LINQ_to_SQL_Part_4__Updating_our_Database.3

In Martin Fowlers Buch Patterns of Enterprise Architecture sind dem Thema einige Seiten gewidmet (S. 184-194). Seine kurze Definition lautet:

"Führt eine Liste von Objekten, die von einer von einem Geschäftsvorgang betroffen sind und koordiniert das Ausschreiben von Änderungen und die Lösung von Gleichzeitigkeitsproblemen Probleme."

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X