示例#1
0
        public static async Task GetAsync(
            Catalog catalog, Dictionary <string, UserTable> userTables,
            Dictionary <string, PrimaryKeyColumn> primaryKeyColumns,
            Dictionary <string, UniqueConstraintColumn> uniqueConstraintColumns,
            DbConnection connection,
            IMetadataScriptFactory metadataScriptFactory,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.ThrowIfCancellationRequested();
            using (var command = connection.CreateCommand())
            {
                command.CommandText = metadataScriptFactory.ForeignKeys(catalog.ObjectName);
                using (var reader = await command.ExecuteReaderAsync(cancellationToken))
                {
                    if (!reader.HasRows)
                    {
                        reader.Close();
                        return;
                    }

                    await ReadAsync(userTables, primaryKeyColumns, uniqueConstraintColumns, reader, cancellationToken);

                    reader.Close();
                }
            }
        }
示例#2
0
        public static void Get(
            Catalog catalog,
            Dictionary <string, UserTable> userTables,
            Dictionary <string, PrimaryKeyColumn> primaryKeyColumns,
            Dictionary <string, UniqueConstraintColumn> uniqueConstraintColumns,
            DbConnection connection,
            IMetadataScriptFactory metadataScriptFactory)
        {
            using (var command = connection.CreateCommand())
            {
                command.CommandText = metadataScriptFactory.ForeignKeys(catalog.ObjectName);
                using (var reader = command.ExecuteReader())
                {
                    if (!reader.HasRows)
                    {
                        reader.Close();
                        return;
                    }

                    Read(userTables, primaryKeyColumns, uniqueConstraintColumns, reader);

                    reader.Close();
                }
            }
        }