rendered paste bodyusing NHibernate;
using NHibernate.Mapping.Attributes;
public 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();
}
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();
session.BeginTransaction();
}
return _session;
}
}
public static string[] GenerateSchemaCreationSql() {
return Configuration.GenerateSchemaCreationScript(SessionFactory.Dialect);
}
}