Question

En termes simples, ce qui est une unité de travail en ce qui concerne les objets de base de données? Je fais des recherches comment convertir les tables de base de données en classes C # et je viens souvent dans ce terme, mais tout le monde semble le décrire comme si vous savez déjà ce ce qu'elle est.

Était-ce utile?

La solution

Je vais citer Martin Fowler ici, car je pense que son sens est l'un des plus clairs , plus compréhensible que j'ai vu:

  

Une unité de travail garde la trace de tout ce que vous faites au cours d'une transaction commerciale qui peut affecter la base de données. Lorsque vous avez terminé, il figure tout ce qui doit être fait pour modifier la base de données à la suite de votre travail.

Autres conseils

Fondamentalement, cela signifie que le travail requis pour compléter une action atomique, par exemple, transférer de l'argent entre deux comptes chèques.

Exemple (en 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

Un bon article MSDN décrivant Unité de travail L'ignorance et la persistance est ici: http://msdn.microsoft.com/en-us/magazine/dd882510. aspx

LINQ à SQL une unité de travail est défini comme ( http: / /msdn.microsoft.com/en-us/library/bb546187.aspx ):

  

Une instance d'un contexte de données devrait   ont une durée de vie d'une « unité de travail ».   Dans un environnement faiblement couplé, un   unité de travail est généralement faible,   peut-être une transaction optimiste,   y compris un appel à   Soumettre des changements. Par conséquent, les données   contexte est créé et disposé à   champ d'application de la méthode. Si l'unité de travail   comprend les appels vers des règles commerciales   logique, alors vous voulez généralement   garder l'instance DataContext pour que   ensemble de l'opération

Comprendre l'unité de travail est important pour le succès avec LINQ to SQL. Jetez un oeil à cette page (un scénario de mise à jour), pour savoir comment l'unité de modèle de travail s'inscrit dans LINQ to SQL:

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

Martin Fowler Patterns du livre d'architecture d'entreprise a un bon nombre de pages consacrées au sujet (p 184-194). Sa brève définition est:

  

"Maintient une liste d'objets touchés   par une transaction commerciale et   coordonne l'écriture sur les changements   et la résolution de la concomitance   problèmes. "

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top