title: How to turn off NHibernate's automatic (dirty checking) update behaviour?
body: <p>I've just discovered that if I get an object from an NHibernate session and change a property on object, NHibernate will automatically update the object on commit without me calling <code>Session.Update(myObj)</code>!</p>
  
  <p>I can see how this could be helpful, <strike>but as default behaviour it seems crazy!</strike></p>
  
  <p><strong>Update:</strong> I now understand persistence ignorance, so this behaviour is now clearly the preferred option. I'll leave this now embarrassing question here to hopefully help other profane users.</p>
  
  <p>How can I stop this happening? Is this default NHibernate behaviour or something coming from Fluent NHibernate's AutoPersistenceModel?</p>
  
  <p>If there's no way to stop this, what do I do? Unless I'm missing the point this behaviour seems to create a right mess.</p>
  
  <p>I'm using NHibernate 2.0.1.4 and a Fluent NHibernate build from 18/3/2009</p>
  
  <p>Is this guy right with <a href="http://brian.pontarelli.com/2007/04/03/hibernate-pitfalls-part-2/#comment-3403" rel="noreferrer">his answer</a>? </p>
  
  <p>I've also read that overriding an Event Listener could be a solution to this. However, <code>IDirtyCheckEventListener.OnDirtyCheck</code> isn't called in this situation. Does anyone know which listener I need to override?</p>