示例#1
0
        private async Task BatchedOperationAsync(
            CloudTable table,
            IGrouping <string, Value> valueGroups,
            Action <TableBatchOperation, ITableEntity> action)
        {
            foreach (var valuesChunk in valueGroups.Chunk(this.options.MaxInsertLimit))
            {
                if (valuesChunk == null)
                {
                    break;
                }

                var values = new List <Value>(valuesChunk);
                var batch  = new TableBatchOperation();
                foreach (var value in values)
                {
                    action(batch, new EntityAdapter(
                               value,
                               this.isCosmos ? new[] { "Id", "Timestamp" } : null));
                }

                var result = await this.ExecuteBatchAsync(table, batch);

                for (var i = 0; i < result.Count && i < values.Count; i++)
                {
                    var tableResult = result[i];
                    var value       = values[i];
                }
            }
        }
        private async Task BatchedOperationAsync(CloudTable table, IGrouping <string, Value> group, Action <TableBatchOperation, IAzTableEntity> azAction)
        {
            foreach (IEnumerable <Value> chunk in group.Chunk(MaxInsertLimit))
            {
                if (chunk == null)
                {
                    break;
                }

                var chunkLst = new List <Value>(chunk);
                var batch    = new TableBatchOperation();
                foreach (Value row in chunkLst)
                {
                    azAction(batch, new EntityAdapter(row));
                }

                List <TableResult> result = await ExecOrThrowAsync(table, batch);

                for (int i = 0; i < result.Count && i < chunkLst.Count; i++)
                {
                    TableResult tr  = result[i];
                    Value       row = chunkLst[i];
                }
            }
        }