public static DatabaseEngine GetNewDatabaseEngine(string databasename) { lock (LockedObject) { DatabaseEngine engine = null; EnumDatabaseEngineType enginetype = GetDatabaseEngineType(databasename); switch (enginetype) { case EnumDatabaseEngineType.Sql2005: engine = new Sql2005DatabaseEngine(); break; case EnumDatabaseEngineType.Sql2008: engine = new Sql2008DatabaseEngine(); break; case EnumDatabaseEngineType.Sql2012: engine = new Sql2012DatabaseEngine(); break; case EnumDatabaseEngineType.SQLite: engine = new SQLiteDatabaseEngine(); break; case EnumDatabaseEngineType.Oracle: engine = new OracleDatabaseEngine(); break; case EnumDatabaseEngineType.GenericDatabase: engine = new GenericDatabaseEngine(); break; } DatabaseSession session = new DatabaseSession(databasename); engine.DatabaseSession = session; return(engine); } }
public static DatabaseEngine GetDatabaseEngine(string databasename = "") { lock (LockedObject) { DatabaseSession session = null; if (string.IsNullOrWhiteSpace(databasename)) { session = DatabaseScopeManager.Instance.GetCurrentDatabaseSession(); } else { session = DatabaseScopeManager.Instance.GetCurrentDatabaseSession(databasename); } DatabaseEngine engine = null; EnumDatabaseEngineType enginetype = GetDatabaseEngineType(session != null ? session.DatabaseName : databasename); switch (enginetype) { case EnumDatabaseEngineType.Sql2005: engine = new Sql2005DatabaseEngine(); break; case EnumDatabaseEngineType.Sql2008: engine = new Sql2008DatabaseEngine(); break; case EnumDatabaseEngineType.Sql2012: engine = new Sql2012DatabaseEngine(); break; case EnumDatabaseEngineType.SQLite: engine = new SQLiteDatabaseEngine(); break; case EnumDatabaseEngineType.Oracle: engine = new OracleDatabaseEngine(); break; case EnumDatabaseEngineType.GenericDatabase: engine = new GenericDatabaseEngine(); break; } if (engine != null) { if (session == null) { session = new DatabaseSession(databasename); } engine.DatabaseSession = session; } else { throw new ObjectMappingException("not find database engine"); } return(engine); } }