コード例 #1
0
        /// <summary>
        ///     Executes batch operations.
        /// </summary>
        /// <param name="entities">List of entities.</param>
        /// <param name="operation">Table operation.</param>
        /// <returns>Result entities.</returns>
        public override IEnumerable <T> ExecuteBatches(IEnumerable <T> entities, Func <ITableEntity, TableOperation> operation)
        {
            if (entities == null)
            {
                throw new ArgumentNullException("entities");
            }

            if (operation == null)
            {
                throw new ArgumentNullException("operation");
            }

            IEnumerable <ITableEntity>        tableEntities = entities.Select(p => _entityConverter.GetEntity(p));
            IEnumerable <TableBatchOperation> batches       = _partitioner.GetBatches(tableEntities, operation);

            return(from batch in batches
                   from result in _cloudTable.ExecuteBatch(batch)
                   select _entityConverter.GetEntity((DynamicTableEntity)result.Result));
        }
コード例 #2
0
        /// <summary>
        ///     Executes batch operations.
        /// </summary>
        /// <param name="entities">List of entities.</param>
        /// <param name="operation">Table operation.</param>
        /// <returns>Result entities.</returns>
        public override IEnumerable <T> ExecuteBatches(IEnumerable <T> entities, Func <ITableEntity, TableOperation> operation)
        {
            if (entities == null)
            {
                throw new ArgumentNullException(nameof(entities));
            }

            if (operation == null)
            {
                throw new ArgumentNullException(nameof(operation));
            }

            IEnumerable <ITableEntity>        tableEntities = entities.Select(p => _entityConverter.GetEntity(p));
            IEnumerable <TableBatchOperation> batches       = _partitioner.GetBatches(tableEntities, operation);

            // Force evaluation of the execution by calling ToArray()
            var results = batches.SelectMany(t => _cloudTable.ExecuteBatch(t)).ToArray();

            return(results.Select(t => _entityConverter.GetEntity((DynamicTableEntity)t.Result)));
        }
コード例 #3
0
 /// <summary>
 ///     Retrieves & convert entities from cloud table.
 /// </summary>
 /// <param name="batch">Batch operation.</param>
 /// <returns>Result entities.</returns>
 private IEnumerable <T> GetEntities(TableBatchOperation batch)
 {
     return(_cloudTable
            .ExecuteBatch(batch)
            .Select(p => _entityConverter.GetEntity((DynamicTableEntity)p.Result)));
 }