You should read Oren Eini's MSDN article on Building a Desktop Application in NHibernate . It details the creation and management of the NHibernate session lifetime, as well as the two-way data binding and entity distribution.
I believe that he used some variants of MVP or MVVM in his examples, although he does not mention it by name.
source share