public static void InitalizeSessionFactory(params FileInfo[] hbmFiles) { if (SessionFactory != null) return; var properties = new Dictionary<string, string> { {"connection.driver_class", "NHibernate.Driver.SQLite20Driver"}, {"dialect", "NHibernate.Dialect.SQLiteDialect"}, {"connection.provider", "NHibernate.Connection.DriverConnectionProvider"}, {"connection.connection_string", "Data Source=askme.db;Version=3;New=True;"}, {"connection.release_mode", "on_close"}, {"show_sql", "true"}, {"proxyfactory.factory_class", "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"} }; Config = new Configuration {Properties = properties}; foreach (FileInfo mappingFile in hbmFiles) { Config = Config.AddFile(mappingFile); } Config.BuildMapping(); SessionFactory = Config.BuildSessionFactory(); }
public static ISessionFactory AppDomainFactory() { if (_appDomainFactory == null) { lock (_synRoot3) { if (_appDomainFactory == null) { var createSchema = false; var configuration = new Configuration() .DataBaseIntegration(d => { d.ConnectionStringName = Constants.APP_DB; d.Dialect<MsSql2012Dialect>(); //d.Dialect<Oracle10gDialect>(); d.SchemaAction = SchemaAutoAction.Validate; }) .Proxy(p => p.ProxyFactoryFactory<DefaultProxyFactoryFactory>()) .CurrentSessionContext<LazySessionContext>() .SetProperty(NHibernate.Cfg.Environment.Hbm2ddlKeyWords, "none") .SetProperty(NHibernate.Cfg.Environment.Hbm2ddlAuto, (createSchema == true) ? SchemaAutoAction.Update.ToString() : SchemaAutoAction.Validate.ToString()); configuration.AddMapping(GetAppMappings()); configuration.BuildMapping(); if (File.Exists(Util.GetFullPath(System.Configuration.ConfigurationManager.AppSettings[Constants.HIBERNATE_CONFIG_KEY]))) configuration.Configure(Util.GetFullPath(System.Configuration.ConfigurationManager.AppSettings[Constants.HIBERNATE_CONFIG_KEY])); if (File.Exists(Util.GetFullPath(System.Configuration.ConfigurationManager.AppSettings[Constants.HIBERNATE_CONFIG_KEY_App]))) configuration.Configure(Util.GetFullPath(System.Configuration.ConfigurationManager.AppSettings[Constants.HIBERNATE_CONFIG_KEY_App])); //new NHibernate.Tool.hbm2ddl.SchemaExport(configuration).SetOutputFile(@"c:\temp\MyDDL.sql").Execute(true /*script*/, true /*export to db*/, false /*just drop*/); _appDomainFactory = configuration.BuildSessionFactory(); } } } return _appDomainFactory; }
/// <summary> /// Integrate ActsAsVersioned with NHibernate. /// </summary> /// <param name="configuration">The NHibernate configuration.</param> /// <returns>The NHibernate configuration.</returns> /// <remarks> /// WARNING: Be sure to call this method after set all configuration properties, after have added all your mappings /// and after integrate NHibernate with all others packages as NHibernate.Validator, NHibernate.Search, NHibernate.Spatial. /// </remarks> public static Configuration IntegrateWithActsAsVersioned(this Configuration configuration) { const string integratedKey = "ActsAsVersioned_Integrated"; if (configuration.GetProperty(integratedKey) != null) { Logger.Warn($"{nameof(IntegrateWithActsAsVersioned)} has already been called for this configuration"); return(configuration); } var versionedClasses = new List <VersionedClass>(); foreach (var pc in configuration.ClassMappings) { if (!VersionedClass.IsActsAsVersioned(pc)) { continue; } versionedClasses.Add(new VersionedClass(pc)); } if (versionedClasses.Count == 0) { // nothing to do return(configuration); } var mapping = configuration.BuildMapping(); foreach (var vc in versionedClasses) { vc.UpdateConfiguration(configuration, mapping); } var listeners = new[] { new VersionedEventListener(versionedClasses) }; // ReSharper disable CoVariantArrayConversion configuration.AppendListeners(ListenerType.PostInsert, listeners); configuration.AppendListeners(ListenerType.PostUpdate, listeners); configuration.AppendListeners(ListenerType.PostDelete, listeners); // ReSharper restore CoVariantArrayConversion configuration.SetProperty(integratedKey, "1"); return(configuration); }
public static void InitalizeSessionFactory() { if (sessionFactory != null) return; var properties = new Dictionary<string, string>(); properties.Add("connection.driver_class", "NHibernate.Driver.SQLite20Driver,NHibernate"); properties.Add("dialect", "NHibernate.Dialect.SQLiteDialect"); properties.Add("connection.provider", "NHibernate.Connection.DriverConnectionProvider"); properties.Add("connection.connection_string", "Data Source=./../../../database/gringotts.db;Version=3;New=True;"); properties.Add("connection.release_mode", "on_close"); properties.Add("show_sql", "true"); configuration = new Configuration(); configuration.Properties = properties; configuration.AddAssembly("Gringotts"); configuration.BuildMapping(); sessionFactory = configuration.BuildSessionFactory(); }
public static void InitalizeSessionFactory(params FileInfo[] hbmFiles) { if (sessionFactory != null) return; var properties = new Dictionary<string, string>(); properties.Add("connection.driver_class", "NHibernate.Driver.SQLite20Driver"); properties.Add("dialect", "NHibernate.Dialect.SQLiteDialect"); properties.Add("connection.provider", "NHibernate.Connection.DriverConnectionProvider"); properties.Add("connection.connection_string", "Data Source=../../../database/getin.db;Version=3"); properties.Add("connection.release_mode", "on_close"); properties.Add("show_sql", "true"); configuration = new Configuration(); configuration.Properties = properties; foreach (FileInfo mappingFile in hbmFiles) { configuration = configuration.AddFile(mappingFile); } configuration.BuildMapping(); sessionFactory = configuration.BuildSessionFactory(); }
public static void InitalizeSessionFactory(params Assembly[] assemblies) { if (sessionFactory != null) return; var properties = new Dictionary<string, string>(); properties.Add("connection.driver_class", "NHibernate.Driver.SQLite20Driver"); properties.Add("proxyfactory.factory_class", "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"); properties.Add("dialect", "NHibernate.Dialect.SQLiteDialect"); properties.Add("connection.provider", "NHibernate.Connection.DriverConnectionProvider"); properties.Add("connection.connection_string", "Data Source=:memory:;Version=3;New=True;"); properties.Add("connection.release_mode", "auto"); properties.Add("show_sql", "true"); configuration = new Configuration(); configuration.Properties = properties; foreach (Assembly assembly in assemblies) { configuration = configuration.AddAssembly(assembly); } configuration.BuildMapping(); sessionFactory = configuration.BuildSessionFactory(); }