Comment désactiver NHibernate automatique (dirty checking) mise à jour de comportement?

Je viens de découvrir que si je reçois un objet à partir d'un NHibernate session et modifier une propriété sur l'objet, NHibernate sera automatiquement mise à jour de l'objet sur valider sans m'appeler Session.Update(myObj)!

Je peux voir comment cela pourrait être utile, mais comme comportement par défaut, il semble fou!

Mise à jour: je comprends maintenant l'ignorance de la persistance, de sorte que ce comportement est clairement la meilleure option. Je vais laisser maintenant cette embarrassante question ici, j'espère aider d'autres profane utilisateurs.

Comment puis-je arrêter ce qui se passe? Est-ce par défaut NHibernate comportement ou quelque chose venant de NHibernate Fluent du AutoPersistenceModel?

Si il n'y a aucun moyen d'arrêter cela, que dois-je faire? À moins que je manque le point ce comportement semble créer un droit mess.

Je suis en utilisant NHibernate 2.0.1.4 et Couramment NHibernate construire à partir de 18/3/2009

Est ce mec à droite avec sa réponse?

J'ai aussi lu que la substitution d'une Écouteur d'Événement pourrait être une solution à cette question. Cependant, IDirtyCheckEventListener.OnDirtyCheck n'est pas appelé dans cette situation. Personne ne sait qui auditeur j'ai besoin de remplacer?

  • Je ne pense pas que c'est nécessaire de dire que la personne de poser cette question est "profane". Pour des exemples, il y a beaucoup de fois quand je veux charger un objet et je sais que je ne vais pas apporter de modifications. Je ne veux pas NHibernate perdre de temps à vérifier si elle a changé.