public static Task UpdatePlaylistItem(IDatabaseComponent database, PlaylistItem playlistItem, ITransactionSource transaction) { var table = database.Tables.PlaylistItem; var builder = database.QueryFactory.Build(); builder.Update.SetTable(table); builder.Update.AddColumns(table.UpdatableColumns); builder.Filter.AddColumns(table.PrimaryKeys); var query = builder.Build(); var parameters = new ParameterHandlerStrategy(table, playlistItem).Handler; return(database.ExecuteAsync(query, parameters, transaction)); }
public async Task UpdateAsync(IEnumerable <T> entities, IEnumerable <string> columns) { var builder = this.Database.QueryFactory.Build(); builder.Update.SetTable(this.Table); if (columns != null && columns.Any()) { builder.Update.AddColumns(this.Table.UpdatableColumns.Where(column => columns.Contains(column.ColumnName, true))); } else { builder.Update.AddColumns(this.Table.UpdatableColumns); } builder.Filter.AddColumns(this.Table.PrimaryKeys); var query = builder.Build(); foreach (var entity in entities) { var parameters = new ParameterHandlerStrategy(this.Table, entity).Handler; await this.Database.ExecuteAsync(query, parameters, this.Transaction).ConfigureAwait(false); } }