public static async Task <Dictionary <string, PrimaryKeyColumn> > GetAsync( Catalog catalog, Dictionary <string, UserTable> userTables, DbConnection connection, IMetadataScriptFactory metadataScriptFactory, CancellationToken cancellationToken = default(CancellationToken)) { cancellationToken.ThrowIfCancellationRequested(); var primaryKeyColumns = new Dictionary <string, PrimaryKeyColumn>(StringComparer.OrdinalIgnoreCase); using (var command = connection.CreateCommand()) { command.CommandText = metadataScriptFactory.PrimaryKeys(catalog.ObjectName); using (var reader = await command.ExecuteReaderAsync(cancellationToken)) { if (!reader.HasRows) { reader.Close(); return(primaryKeyColumns); } await ReadAsync(userTables, primaryKeyColumns, reader, cancellationToken); reader.Close(); } } return(primaryKeyColumns); }
public static Dictionary <string, PrimaryKeyColumn> Get( Catalog catalog, Dictionary <string, UserTable> userTables, DbConnection connection, IMetadataScriptFactory metadataScriptFactory) { var primaryKeyColumns = new Dictionary <string, PrimaryKeyColumn>(StringComparer.OrdinalIgnoreCase); using (var command = connection.CreateCommand()) { command.CommandText = metadataScriptFactory.PrimaryKeys(catalog.ObjectName); using (var reader = command.ExecuteReader()) { if (!reader.HasRows) { reader.Close(); return(primaryKeyColumns); } Read(userTables, primaryKeyColumns, reader); reader.Close(); } } return(primaryKeyColumns); }