NHibernate: Session.Save et Transaction.Commit
Est-il une différence entre Session.Save
et Transaction.Commit
?
Quand je devrais utiliser?
Il semble que, parfois, Session.Save
devez utiliser en conjonction avec Transaction.Commit
parfois non. Si quelqu'un peut dire pourquoi il en est ainsi?
source d'informationauteur Graviton
Vous devez vous connecter pour publier un commentaire.
Ils sont differenrt--
Session.Save
enregistre un objet etTransaction.Commit
commet un tas de travail (plusieurs Reçoit, des Charges, des Sauvegardes, des Mises à jour, etc).Vous aurez envie d'utiliser les deux. Voici une explication rapide avec un lien pour en savoir plus. Le NHibernate documentation indique les éléments suivants:
Si vous n'avez pas de définition explicite de votre transaction, il en sera créé implicitement à chaque fois de vous lire ou d'écrire dans la base de données. Pas très efficace. Donc même si vous êtes juste en train de lire, vous aurez envie de tout mettre à l'intérieur d'une transaction et de valider la transaction lorsque vous avez terminé. Ayende Rahien explique plus loin dans ce blog.
Quand vous regardez certains des exemples de code, il peut sembler que les gens ne sont pas à l'aide de transactions, mais ils vont peut-être le début/la validation de la transaction en dehors du code que vous cherchez. Dans mon ASP.Net MVC app, par exemple, j'utilise un filtre d'actions (TransactionAttribute) pour gérer les transactions en dehors de mes Actions du Contrôleur.