示例#1
0
        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));
        }
示例#2
0
        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);
            }
        }