public static ISession CreateNewSession()
 {
     if (_sessionFactory == null)
     {
         string connection = XTradeConfig.ConnectionString();
         if (XTradeConfig.ConnectionStringName().Contains("SQLite"))
         {
             // http://qaru.site/questions/754091/getting-fluent-nhibernate-to-work-with-sqlite
             var dbConfig = SQLiteConfiguration.Standard.ConnectionString(connection);
             _sessionFactory = Fluently.Configure().Database(dbConfig)
                               .Mappings(m => m.FluentMappings.AddFromAssemblyOf <DBAdviser>())
                               .BuildSessionFactory();
         }
         else
         {
             var dbConfig = MySQLConfiguration.Standard.ConnectionString(connection);
             _sessionFactory = Fluently.Configure().Database(dbConfig)
                               .Mappings(m => m.FluentMappings.AddFromAssemblyOf <DBAdviser>())
                               .BuildSessionFactory();
         }
     }
     lock (lockObject) // Session is not thread safe thus - should be locked.
     {
         return(_sessionFactory.OpenSession());
     }
 }
Beispiel #2
0
 private static void InitConfig()
 {
     if (config == null)
     {
         config = MainService.thisGlobal.Container.Resolve <XTradeConfig>();
     }
 }