/// <inheritdoc /> public async ValueTask Exec(IRwSqlTransaction transaction, CancellationToken cancellationToken) { var sql = @"update posts set author = 'unknown' where author is null; alter table posts alter author set not null" ; await transaction.ExecuteAsync(sql, cancellationToken); }
/// <inheritdoc /> public async ValueTask Exec(IRwSqlTransaction transaction, CancellationToken cancellationToken) { var sql = "insert into posts(content) values ('Hello, world!')"; await transaction.ExecuteAsync(sql, cancellationToken); // simulate that migration takes time. await Task.Delay(1000, cancellationToken); }
public async Task <IActionResult> Post ([FromBody] PostDto post, [FromServices] IRwSqlTransaction sqlTransaction, CancellationToken ct) { var sql = "insert into posts (author, content) values (@author, @content)"; await sqlTransaction.ExecuteAsync(sql, ct, args : post, affect : SingleRow); return(NoContent()); }
/// <exception cref = "SqlException" /> /// <exception cref = "OperationCanceledException" /> static async ValueTask <MigrationDescriptor?> MbNextDescriptor (IDbMigrationProvider dbMigrationProvider, IRwSqlTransaction transaction, String migrationSchema, MigrationDescriptorCollection descriptors, CancellationToken cancellationToken) { var mbLastMigration = await dbMigrationProvider.MaybeLastMigrationInfo(transaction, migrationSchema, cancellationToken); if (!(mbLastMigration is {} lastMigration)) { return(descriptors[0]); }
/// <inheritdoc /> public async ValueTask Exec(IRwSqlTransaction transaction, CancellationToken cancellationToken) { var sql = "create table posts(author text, content text not null, timestamp timestamptz default now())"; await transaction.ExecuteAsync(sql, cancellationToken); }