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();
            }
        }