public async Task CheckHasIdentityAsync(DbContext context, CancellationToken cancellationToken) { await context.Database.OpenConnectionAsync(cancellationToken).ConfigureAwait(false); var sqlConnection = context.Database.GetDbConnection(); var currentTransaction = context.Database.CurrentTransaction; try { using (var command = sqlConnection.CreateCommand()) { if (currentTransaction != null) command.Transaction = currentTransaction.GetDbTransaction(); command.CommandText = SqlQueryBuilder.SelectIdentityColumnName(TableName, Schema); using (var reader = await command.ExecuteReaderAsync(cancellationToken).ConfigureAwait(false)) { if (reader.HasRows) { while (await reader.ReadAsync(cancellationToken).ConfigureAwait(false)) { IdentityColumnName = reader.GetString(0); } } } } } finally { await context.Database.CloseConnectionAsync().ConfigureAwait(false); } }
public void CheckHasIdentity(DbContext context) { context.Database.OpenConnection(); try { var sqlConnection = context.Database.GetDbConnection(); var currentTransaction = context.Database.CurrentTransaction; using (var command = sqlConnection.CreateCommand()) { if (currentTransaction != null) command.Transaction = currentTransaction.GetDbTransaction(); command.CommandText = SqlQueryBuilder.SelectIdentityColumnName(TableName, Schema); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { IdentityColumnName = reader.GetString(0); } } } } } finally { context.Database.CloseConnection(); } }