In NHibernate, when you have the FlushMode configured to AutoFlush , session.Flush() is called when NH detects a dirty entity instance and when a query with an intersected QuerySpace is performed. (The QuerySpace is represented by all tables affected...