rendered paste bodyusing 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);
}
}
}