All pastes #72266 Raw Edit

Stuff

public text v1 · immutable
#72266 ·published 2006-06-26 18:43 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.Text;
using NHibernate;

namespace Pcms.Classes.Base
{
    class NHibernateHelper
    {
        private static NHibernate.Cfg.Configuration _configuration = null;
        private static ISessionFactory _sessionFactory = null;
        private static ISession _session = null;

        public static NHibernate.Cfg.Configuration Configuration
        {
            get
            {
                if (_configuration == null)
                {
                    System.IO.MemoryStream stream = new System.IO.MemoryStream();
                    NHibernate.Mapping.Attributes.HbmSerializer.Default.Validate = true;

                    // add every assemblies that contain entity classes
                    NHibernate.Mapping.Attributes.HbmSerializer.Default.Serialize(stream, System.Reflection.Assembly.GetExecutingAssembly());
                    stream.Position = 0;
                    NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
                    cfg.Configure();
                    cfg.AddInputStream(stream); // Use the stream here
                    stream.Close();
                    _configuration = cfg;
                }
                return _configuration;
            }
        }

        public static ISessionFactory SessionFactory
        {
            get
            {
                if (_sessionFactory == null)
                {
                    _sessionFactory = Configuration.BuildSessionFactory();
                }
                return _sessionFactory;
            }
        }

        public static ISession Session
        {
            get
            {
                if (_session == null)
                {
                    _session = SessionFactory.OpenSession();
                }
                return _session;
            }
        }

        public static string[] GenerateSchemaCreationSql()
        {
            return Configuration.GenerateSchemaCreationScript(SessionFactory.Dialect);
        }
    }
}