public virtual void Save(T entity) { if (IsStatelessSession) { if (!StatelessSession.IsOpen) { throw new HibernateException("The stateless NHibernate session must be open before an entity can be saved."); } if (StatelessSession.Transaction == null) { throw new HibernateException("Saves must be done within an NHibernate transaction."); } StatelessSession.BeginTransaction(); StatelessSession.Insert(entity); StatelessSession.Transaction.Commit(); } else { if (!Session.IsOpen) { throw new HibernateException("NHibernate session must be open before an entity can be saved."); } if (Session.Transaction == null) { throw new HibernateException("Saves must be done within an NHibernate transaction."); } Session.BeginTransaction(); Session.Save(entity); Session.Transaction.Commit(); } }