2012-11-23 3 views
1

J'utilise une entité dont les propriétés sont calculées par vue. Dans mon exemple de scénario:Actualisation de l'entité forcée après la mise à jour

  1. Je reçois l'entité de base de données & je change quelques propriétés de cette entité
  2. Je suis sauver cette entité Session.update (entité)
  3. I » m appelant session.Refresh (entity), car certaines colonnes calculées par la vue peuvent changer suite à mes changements.

So NHibernate si forcé d'avoir trois voyages à la base de données.

Ce que je suis en train de réaliser est d'avoir deux voyages:

  1. Je reçois l'entité de base de données & je change quelques propriétés de cette entité
  2. Je sauve cette entité session.Update (entité) & rafraîchissant dans un voyage de base de données.

Est-ce possible?

Répondre

4

Non, ce n'est pas possible. Vous devez exécuter trois commandes SQL: select, update, select. NHibernate prend en charge le traitement par lots, mais il regroupe des insertions ou des mises à jour, et non des commandes mixtes.

Aditionally, NHibernate prend en charge Generated Properties, de sorte que vous ne devez pas mettre à jour ces colonnes à la main (il nécessite encore un aller-retour, mais il est transparent)

+0

Propriétés générées? Génial, je vais essayer – dragonfly

Questions connexes