Comment NHibernate déterminer si d'insérer ou de mettre à jour un enregistrement?

StackOverflow https://stackoverflow.com/questions/3660496

  •  01-10-2019
  •  | 
  •  

Question

Lors de l'utilisation Session.SaveOrUpdate(myEntity); comment NHibernate décider comment il faut insérer un nouvel enregistrement ou mettre à jour un existant?

Je ne parviens pas tout en économisant un objet dans un projet S # arp. Il est récupéré à partir du stockage, puis stocké dans un état de session pour quelques requêtes Web, à l'époque enregistrées dans la base de données avec une propriété a changé (pas le S # arp [DomainSignature]).

I ont, à l'exécution, par rapport l'objet qui est sur le point d'être persisté avec une version fraîchement extraites de la base de données en ligne droite en utilisant la méthode de Equals() et que les rendements vrais. Toutefois, l'objet se termine toujours par créer une nouvelle ligne dans la base de données.

Ailleurs dans l'application que cela fonctionne bien, mais j'espère un pointeur sur la façon dont fonctionne NHib cela.

Était-ce utile?

La solution

Fondamentalement SaveOrUpdate() est à la recherche d'un identifiant. Si l'identifiant est présent, il mettra à jour l'enregistrement dans la base de données. Si l'identifiant n'est pas présent, il crée un nouveau record.

Cependant, il semble que vous pourriez avoir quelque chose géniale passe dans votre session. Vous voudrez peut-être essayer SaveOrUpdateCopy() pour voir si cela résout votre problème.

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