public static ISessionFactory GetSessionFactory(SqlConnect sqlConnectProvider) { ISessionFactory factory = null; if (_cacheSessionFactory.TryGetValue(sqlConnectProvider.Name, out factory)) return factory; lock (_lockObj) { if (_cacheSessionFactory.TryGetValue(sqlConnectProvider.Name, out factory)) return factory; FluentConfiguration config = Fluently.Configure(); SetDefaultConfig(config); // if (conn.ProviderName.IndexOf("System.Data.SqlClient", StringComparison.OrdinalIgnoreCase) > -1) BuildMsSqlDatabase(config, sqlConnectProvider.ConnectionString); config.ExposeConfiguration(cfg => { cfg.SetProperty("command_timeout", "120"); var export = new SchemaExport(cfg).SetOutputFile(Path.Combine(PathHelper.AppDataPath, "myDDL.sql")); export.Create(true, false); }); factory= config.BuildSessionFactory(); _cacheSessionFactory[sqlConnectProvider.Name]=factory; } return factory; }
public NhUnitOfWorkManager(SqlConnect sqlConnect) { SessionFactory = NHibernateManager.GetSessionFactory(sqlConnect); SqlConnect = sqlConnect; }