Each query to the database is known, and there is a method for each All queries are executed while the call stack is in the data layer (no UI-level lazy loading) It forces the developer to think about each data scenario In coaching and training other developers (we actually teach NHibernate in our Agile Boot Camp training class), we have come up with a simple message for how to think about NHibern