public void Initialize() { if (sfs.Count != 0) { return; } log.Debug("Initialize new session factories reading the configuration."); foreach (Configuration cfg in mfc.Configure()) { var sf = (ISessionFactoryImplementor)cfg.BuildSessionFactory(); string sessionFactoryName = sf.Settings.SessionFactoryName; if (!string.IsNullOrEmpty(sessionFactoryName)) { sessionFactoryName = sessionFactoryName.Trim(); } else { throw new ArgumentException("The session-factory-id was not register; you must assign the name of the factory, example: <session-factory name='HereTheFactoryName'>"); } if (string.IsNullOrEmpty(defaultSessionFactoryName)) { defaultSessionFactoryName = sessionFactoryName; } sfs.Add(sessionFactoryName, sf); } mfc = null; // after built the SessionFactories the configuration is not needed }
/// <summary> /// Configures the NHibernate session. /// </summary> /// <param name="configurationProvider">The configuration provider.</param> /// <param name="container">The container.</param> protected override void ConfigureNHibernateSession(IConfigurationProvider configurationProvider, IContainer container) { NHibernate.Cfg.Configuration configuration = configurationProvider.Configure().GetEnumerator().Current; ISessionFactory sessionFactory = configuration.BuildSessionFactory(); container.Configure(x => x.For <ISessionFactory> ().Singleton().Use(sessionFactory)); container.Configure( x => x.For <ISession> ().LifecycleIs(new NServiceBusThreadLocalStorageLifestyle()).Use(sessionFactory.OpenSession)); }
/// <summary> /// Configures the NHibernate session. /// </summary> /// <param name="configurationProvider">The configuration provider.</param> /// <param name="container">The container.</param> protected override void ConfigureNHibernateSession( IConfigurationProvider configurationProvider, IContainer container ) { NHibernate.Cfg.Configuration configuration = configurationProvider.Configure ().GetEnumerator ().Current; ISessionFactory sessionFactory = configuration.BuildSessionFactory (); container.Configure ( x => x.For<ISessionFactory> ().Singleton ().Use ( sessionFactory ) ); container.Configure ( x => x.For<ISession> ().LifecycleIs ( new NServiceBusThreadLocalStorageLifestyle () ).Use ( sessionFactory.OpenSession ) ); }
/// <summary> /// Configures the NHibernate session. /// </summary> /// <param name="configurationProvider">The configuration provider.</param> /// <param name="container">The container.</param> protected override void ConfigureNHibernateSession(IConfigurationProvider configurationProvider, IContainer container) { var configuration = configurationProvider.Configure().GetEnumerator().Current; configuration.SetProperty(Environment.CurrentSessionContextClass, typeof(WebSessionContext).AssemblyQualifiedName); var sessionFactoryProvider = new SessionFactoryProvider(configurationProvider); sessionFactoryProvider.Initialize(); container.Configure(x => x.For<ISessionFactoryProvider>().Singleton().Use(sessionFactoryProvider)); }
/// <summary> /// Configures the NHibernate session. /// </summary> /// <param name="configurationProvider">The configuration provider.</param> /// <param name="container">The container.</param> protected override void ConfigureNHibernateSession(IConfigurationProvider configurationProvider, IContainer container) { var configuration = configurationProvider.Configure().GetEnumerator().Current; configuration.SetProperty(Environment.CurrentSessionContextClass, typeof(WebSessionContext).AssemblyQualifiedName); var sessionFactoryProvider = new SessionFactoryProvider(configurationProvider); sessionFactoryProvider.Initialize(); container.Configure(x => x.For <ISessionFactoryProvider>().Singleton().Use(sessionFactoryProvider)); }
/// <summary> /// Configures the NHibernate session. /// </summary> /// <param name="configurationProvider">The configuration provider.</param> /// <param name="container">The container.</param> private static void ConfigureNHibernateSession(IConfigurationProvider configurationProvider, IContainer container) { var configuration = configurationProvider.Configure(); configuration.SetProperty(Environment.CurrentSessionContextClass, typeof(WebSessionContext).AssemblyQualifiedName); configuration.SetInterceptor(new AuditableInterceptor()); var sessionFactory = configuration.BuildSessionFactory(); container.Configure(x => x.For <ISessionFactory> ().HybridHttpOrThreadLocalScoped().Use(sessionFactory)); }
public void Initialize() { if (sf == null) { log.Debug("Initialize a new session factory reading the configuration."); IEnumerator <Configuration> conf = fcp.Configure().GetEnumerator(); if (conf.MoveNext()) { sf = conf.Current.BuildSessionFactory(); esf = new SingletonEnumerable <ISessionFactory>(sf); } fcp = null; // after built the SessionFactory the configuration is not needed if (conf.MoveNext()) { log.Warn( @"More than one configurations are available but only the first was used. Check your configuration or use a Multi-RDBS session-factory provider."); } } }