Пример #1
0
        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>();
            }
        }
Пример #2
0
        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;
        }