コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }