private static IDatabase _OpenDatabase(string databaseId) { try { var info = ORMConfig.ORMConfiguration.GetDatabaseInfo(databaseId); IDbConnection cnn = CoreFactory.CreateDbProvider(databaseId).CreateConnection(info.ConnectString); ISQLExecutor exe = new SQLExecutor(databaseId, cnn); IObjectMapInfoCache cache = CoreFactory.ObjectMapInfoCache; var dialect = CoreFactory.CreateDialectProvider(databaseId); IModelSQLEmit emit = dialect.CreateModelSQLEmit(cache); IMetaQuery meta = dialect.CreateMetaQuery(exe); if (cnn.State != ConnectionState.Open) { cnn.Open(); } return(new Database(exe, emit, meta)); } catch (Exception ex) { throw ex.CreateWrapException <SessionException>(); } }
internal Database(ISQLExecutor exe, IModelSQLEmit emit, IMetaQuery meta) { exe.ThrowIfNullArgument(nameof(exe)); emit.ThrowIfNullArgument(nameof(emit)); meta.ThrowIfNullArgument(nameof(meta)); _exe = exe; _emit = emit; _meta = meta; }