本文整理汇总了C#中TableBatchOperation.Delete方法的典型用法代码示例。如果您正苦于以下问题:C# TableBatchOperation.Delete方法的具体用法?C# TableBatchOperation.Delete怎么用?C# TableBatchOperation.Delete使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TableBatchOperation
的用法示例。
在下文中一共展示了TableBatchOperation.Delete方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ClearTable
public long ClearTable()
{
long deletionCount = 0;
// Construct the query operation for all customer entities where PartitionKey="Smith".
var list = new List<string>();
list.Add("PartitionKey");
list.Add("RowKey");
TableQuery<SensorValueEntity> query = new TableQuery<SensorValueEntity>().Select(list).Take(100);
var results = table.ExecuteQuery(query);
if (results.Count() < 1)
return deletionCount;
foreach(var resultGroup in results.GroupBy(a => a.PartitionKey))
{
TableBatchOperation batchOperation = new TableBatchOperation();
foreach (var result in resultGroup)
{
batchOperation.Delete(result);
deletionCount++;
}
table.ExecuteBatch(batchOperation);
}
return deletionCount;
}
示例2: DeleteEmail
public void DeleteEmail(string thandle, double beforeDays)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(_connectionString);
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference(_tableName);
var projectionQuery = new TableQuery<DynamicTableEntity>()
.Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, thandle))
.Select(new[] { "RowKey", "Timestamp" });
var batchOperation = new TableBatchOperation();
foreach (var e in table.ExecuteQuery(projectionQuery))
{
if ((DateTimeOffset.UtcNow - e.Timestamp).TotalDays > beforeDays)
{
batchOperation.Delete(e);
}
}
table.ExecuteBatch(batchOperation);
}
示例3: Clean
public static void Clean(string tableName, IList<string> connectionStrings)
{
AzureStorageSettings settings =
new AzureStorageSettings(connectionStrings);
foreach (CloudStorageAccount conn in settings.GetStorageAccounts())
{
CloudTableClient tableClient = conn.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference(tableName);
TableQuery<DynamicTableEntity> query =
new TableQuery<DynamicTableEntity>();
IEnumerable<DynamicTableEntity> results = table.ExecuteQuery(query);
if (results.Count() > 0)
{
TableBatchOperation batchOperation = new TableBatchOperation();
foreach (DynamicTableEntity s in results)
{
batchOperation.Delete(s);
}
table.ExecuteBatch(batchOperation);
}
}
}
示例4: DoTableBatchAllSupportedOperationsAsync
private async Task DoTableBatchAllSupportedOperationsAsync(TablePayloadFormat format)
{
tableClient.DefaultRequestOptions.PayloadFormat = format;
TableBatchOperation batch = new TableBatchOperation();
string pk = Guid.NewGuid().ToString();
// insert
batch.Insert(GenerateRandomEntity(pk));
// delete
{
DynamicTableEntity entity = GenerateRandomEntity(pk);
await currentTable.ExecuteAsync(TableOperation.Insert(entity));
batch.Delete(entity);
}
// replace
{
DynamicTableEntity entity = GenerateRandomEntity(pk);
await currentTable.ExecuteAsync(TableOperation.Insert(entity));
batch.Replace(entity);
}
// insert or replace
{
DynamicTableEntity entity = GenerateRandomEntity(pk);
await currentTable.ExecuteAsync(TableOperation.Insert(entity));
batch.InsertOrReplace(entity);
}
// merge
{
DynamicTableEntity entity = GenerateRandomEntity(pk);
await currentTable.ExecuteAsync(TableOperation.Insert(entity));
batch.Merge(entity);
}
// insert or merge
{
DynamicTableEntity entity = GenerateRandomEntity(pk);
await currentTable.ExecuteAsync(TableOperation.Insert(entity));
batch.InsertOrMerge(entity);
}
IList<TableResult> results = await currentTable.ExecuteBatchAsync(batch);
Assert.AreEqual(results.Count, 6);
IEnumerator<TableResult> enumerator = results.GetEnumerator();
enumerator.MoveNext();
Assert.AreEqual(enumerator.Current.HttpStatusCode, (int)HttpStatusCode.Created);
enumerator.MoveNext();
Assert.AreEqual(enumerator.Current.HttpStatusCode, (int)HttpStatusCode.NoContent);
enumerator.MoveNext();
Assert.AreEqual(enumerator.Current.HttpStatusCode, (int)HttpStatusCode.NoContent);
enumerator.MoveNext();
Assert.AreEqual(enumerator.Current.HttpStatusCode, (int)HttpStatusCode.NoContent);
enumerator.MoveNext();
Assert.AreEqual(enumerator.Current.HttpStatusCode, (int)HttpStatusCode.NoContent);
enumerator.MoveNext();
Assert.AreEqual(enumerator.Current.HttpStatusCode, (int)HttpStatusCode.NoContent);
}
示例5: DoTableBatchDeleteAsync
private async Task DoTableBatchDeleteAsync(TablePayloadFormat format)
{
tableClient.DefaultRequestOptions.PayloadFormat = format;
string pk = Guid.NewGuid().ToString();
// Add insert
DynamicTableEntity ent = GenerateRandomEntity(pk);
await currentTable.ExecuteAsync(TableOperation.Insert(ent));
TableBatchOperation batch = new TableBatchOperation();
// Add delete
batch.Delete(ent);
// success
IList<TableResult> results = await currentTable.ExecuteBatchAsync(batch);
Assert.AreEqual(results.Count, 1);
Assert.AreEqual(results.First().HttpStatusCode, (int)HttpStatusCode.NoContent);
// fail - not found
OperationContext opContext = new OperationContext();
try
{
await currentTable.ExecuteBatchAsync(batch, null, opContext);
Assert.Fail();
}
catch (Exception)
{
TestHelper.ValidateResponse(opContext, 1, (int)HttpStatusCode.NotFound, new string[] { "ResourceNotFound" }, "The specified resource does not exist.");
}
}
示例6: InsertOrMergeBatchWithNEntities
private async Task InsertOrMergeBatchWithNEntities(int n, TablePayloadFormat format)
{
tableClient.DefaultRequestOptions.PayloadFormat = format;
string pk = Guid.NewGuid().ToString();
TableBatchOperation insertBatch = new TableBatchOperation();
TableBatchOperation mergeBatch = new TableBatchOperation();
TableBatchOperation delBatch = new TableBatchOperation();
for (int m = 0; m < n; m++)
{
insertBatch.InsertOrMerge(GenerateRandomEntity(pk));
}
IList<TableResult> results = await currentTable.ExecuteBatchAsync(insertBatch);
foreach (TableResult res in results)
{
Assert.AreEqual(res.HttpStatusCode, (int)HttpStatusCode.NoContent);
// update entity and add to merge batch
DynamicTableEntity ent = res.Result as DynamicTableEntity;
ent.Properties.Add("foo2", new EntityProperty("bar2"));
mergeBatch.InsertOrMerge(ent);
}
// execute insertOrMerge batch, this time entities exist
IList<TableResult> mergeResults = await currentTable.ExecuteBatchAsync(mergeBatch);
foreach (TableResult res in mergeResults)
{
Assert.AreEqual(res.HttpStatusCode, (int)HttpStatusCode.NoContent);
// Add to delete batch
delBatch.Delete((ITableEntity)res.Result);
}
IList<TableResult> delResults = await currentTable.ExecuteBatchAsync(delBatch);
foreach (TableResult res in delResults)
{
Assert.AreEqual(res.HttpStatusCode, (int)HttpStatusCode.NoContent);
}
}
示例7: InsertAndDeleteBatchWithNEntities
private async Task InsertAndDeleteBatchWithNEntities(int n, TablePayloadFormat format)
{
tableClient.DefaultRequestOptions.PayloadFormat = format;
TableBatchOperation batch = new TableBatchOperation();
string pk = Guid.NewGuid().ToString();
for (int m = 0; m < n; m++)
{
batch.Insert(GenerateRandomEntity(pk));
}
IList<TableResult> results = await currentTable.ExecuteBatchAsync(batch);
TableBatchOperation delBatch = new TableBatchOperation();
foreach (TableResult res in results)
{
delBatch.Delete((ITableEntity)res.Result);
Assert.AreEqual(res.HttpStatusCode, (int)HttpStatusCode.Created);
}
IList<TableResult> delResults = await currentTable.ExecuteBatchAsync(delBatch);
foreach (TableResult res in delResults)
{
Assert.AreEqual(res.HttpStatusCode, (int)HttpStatusCode.NoContent);
}
}
示例8: TableBatchDeleteFailAPM
public void TableBatchDeleteFailAPM()
{
CloudTableClient tableClient = GenerateCloudTableClient();
ITableEntity ent = GenerateRandomEnitity("foo");
// add entity
currentTable.Execute(TableOperation.Insert(ent));
// update entity
TableResult result = currentTable.Execute(TableOperation.Retrieve(ent.PartitionKey, ent.RowKey));
DynamicTableEntity retrievedEnt = result.Result as DynamicTableEntity;
retrievedEnt.Properties.Add("prop", new EntityProperty("var"));
currentTable.Execute(TableOperation.Replace(retrievedEnt));
// Attempt to delete with stale etag
TableBatchOperation batch = new TableBatchOperation();
batch.Delete(ent);
OperationContext opContext = new OperationContext();
try
{
using (ManualResetEvent evt = new ManualResetEvent(false))
{
IAsyncResult asyncRes = null;
currentTable.BeginExecuteBatch(batch, null, opContext, (res) =>
{
asyncRes = res;
evt.Set();
}, null);
evt.WaitOne();
currentTable.EndExecuteBatch(asyncRes);
}
Assert.Fail();
}
catch (StorageException)
{
TestHelper.ValidateResponse(opContext,
1,
(int)HttpStatusCode.PreconditionFailed,
new string[] { "UpdateConditionNotSatisfied", "ConditionNotMet" },
new string[] { "The update condition specified in the request was not satisfied.", "The condition specified using HTTP conditional header(s) is not met." });
}
}
示例9: TableBatchDeleteSync
public void TableBatchDeleteSync()
{
CloudTableClient tableClient = GenerateCloudTableClient();
string pk = Guid.NewGuid().ToString();
// Add insert
DynamicTableEntity ent = GenerateRandomEnitity(pk);
currentTable.Execute(TableOperation.Insert(ent));
TableBatchOperation batch = new TableBatchOperation();
// Add delete
batch.Delete(ent);
// success
IList<TableResult> results = currentTable.ExecuteBatch(batch);
Assert.AreEqual(results.Count, 1);
Assert.AreEqual(results.First().HttpStatusCode, (int)HttpStatusCode.NoContent);
// fail - not found
OperationContext opContext = new OperationContext();
try
{
currentTable.ExecuteBatch(batch, null, opContext);
Assert.Fail();
}
catch (StorageException)
{
TestHelper.ValidateResponse(opContext, 1, (int)HttpStatusCode.NotFound, new string[] { "ResourceNotFound" }, "The specified resource does not exist.");
}
}
示例10: InitializeHooks
internal override void InitializeHooks()
{
OnTableClientState(TableClientState.USE_NEW_HIDE_METADATA, async () => {
TableBatchOperation batch = new TableBatchOperation();
batch.Delete(new DynamicTableEntity {
PartitionKey = MigrationModel.SINGLE_PARTITION_KEY,
RowKey = "0",
ETag = ChainTable2Constants.ETAG_ANY
});
await RunBatchAsync(batch);
});
}
示例11: TableBatchDeleteSyncUsingRetrieve
public void TableBatchDeleteSyncUsingRetrieve()
{
// Insert Entity
Console.WriteLine("Calling Insert()...");
DynamicReplicatedTableEntity baseEntity = new DynamicReplicatedTableEntity("replace test", "foo");
baseEntity.Properties.Add("prop1", new EntityProperty("value1"));
this.repTable.Execute(TableOperation.Insert(baseEntity));
// Retrieve existing entities using Retrieve
Console.WriteLine("Calling Retrieve()...");
TableResult result = this.repTable.Execute(TableOperation.Retrieve<DynamicReplicatedTableEntity>(baseEntity.PartitionKey, baseEntity.RowKey));
DynamicReplicatedTableEntity retrievedEntity = result.Result as DynamicReplicatedTableEntity;
Assert.IsNotNull(retrievedEntity);
Assert.AreEqual(baseEntity.Properties.Count, retrievedEntity.Properties.Count);
Assert.AreEqual(baseEntity.Properties["prop1"], retrievedEntity.Properties["prop1"]);
TableBatchOperation batch = new TableBatchOperation();
// Add delete
batch.Delete(retrievedEntity);
Console.WriteLine("Calling ExecuteBatch() to delete...");
IList<TableResult> results = this.repTable.ExecuteBatch(batch);
Assert.AreEqual(results.Count, 1);
Assert.AreEqual(results.First().HttpStatusCode, (int)HttpStatusCode.NoContent);
}
示例12: TableBatchDeleteSyncUsingExecuteQuery
public void TableBatchDeleteSyncUsingExecuteQuery()
{
// Insert Entity
Console.WriteLine("Calling Insert()...");
DynamicReplicatedTableEntity baseEntity = new DynamicReplicatedTableEntity("replace test", "foo");
baseEntity.Properties.Add("prop1", new EntityProperty("value1"));
this.repTable.Execute(TableOperation.Insert(baseEntity));
TableBatchOperation batch = new TableBatchOperation();
// Retrieve existing entities using TableQuery
TableQuery<DynamicReplicatedTableEntity> query = new TableQuery<DynamicReplicatedTableEntity>().Where(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, baseEntity.PartitionKey));
IEnumerable<DynamicReplicatedTableEntity> allEntities = this.repTable.ExecuteQuery<DynamicReplicatedTableEntity>(query);
foreach (DynamicReplicatedTableEntity entity in allEntities)
{
entity.ETag = entity._rtable_Version.ToString();
// Add delete
batch.Delete(entity);
}
Console.WriteLine("Calling ExecuteBatch() to delete...");
IList<TableResult> results = this.repTable.ExecuteBatch(batch);
Assert.AreEqual(results.Count, 1);
Assert.AreEqual(results.First().HttpStatusCode, (int)HttpStatusCode.NoContent);
}
示例13: TableBatchAllSupportedOperationsSync
public void TableBatchAllSupportedOperationsSync()
{
TableBatchOperation batch = new TableBatchOperation();
string pk = Guid.NewGuid().ToString();
// insert
batch.Insert(GenerateRandomEnitity(pk));
// delete
{
DynamicReplicatedTableEntity entity = GenerateRandomEnitity(pk);
this.repTable.Execute(TableOperation.Insert(entity));
batch.Delete(entity);
}
// replace
{
DynamicReplicatedTableEntity entity = GenerateRandomEnitity(pk);
this.repTable.Execute(TableOperation.Insert(entity));
batch.Replace(entity);
}
// insert or replace
{
DynamicReplicatedTableEntity entity = GenerateRandomEnitity(pk);
this.repTable.Execute(TableOperation.Insert(entity));
batch.InsertOrReplace(entity);
}
// merge
{
DynamicReplicatedTableEntity entity = GenerateRandomEnitity(pk);
this.repTable.Execute(TableOperation.Insert(entity));
batch.Merge(entity);
}
// insert or merge
{
DynamicReplicatedTableEntity entity = GenerateRandomEnitity(pk);
this.repTable.Execute(TableOperation.Insert(entity));
batch.InsertOrMerge(entity);
}
IList<TableResult> results = this.repTable.ExecuteBatch(batch);
Assert.AreEqual(results.Count, 6);
IEnumerator<TableResult> enumerator = results.GetEnumerator();
for (int i = 0; i < results.Count; i++)
{
enumerator.MoveNext();
Assert.AreEqual((int)HttpStatusCode.NoContent, enumerator.Current.HttpStatusCode, "HttpStatusCode mismatch i={0}", i);
}
}
示例14: InsertOrMergeBatchWithNEntities
private void InsertOrMergeBatchWithNEntities(int n)
{
string pk = Guid.NewGuid().ToString();
TableBatchOperation insertBatch = new TableBatchOperation();
TableBatchOperation mergeBatch = new TableBatchOperation();
TableBatchOperation delBatch = new TableBatchOperation();
for (int m = 0; m < n; m++)
{
insertBatch.InsertOrMerge(GenerateRandomEnitity(pk));
}
IList<TableResult> results = this.repTable.ExecuteBatch(insertBatch);
foreach (TableResult res in results)
{
Assert.AreEqual(res.HttpStatusCode, (int)HttpStatusCode.NoContent);
// update entity and add to merge batch
DynamicReplicatedTableEntity ent = res.Result as DynamicReplicatedTableEntity;
ent.Properties.Add("foo2", new EntityProperty("bar2"));
mergeBatch.InsertOrMerge(ent);
}
// execute insertOrMerge batch, this time entities exist
IList<TableResult> mergeResults = this.repTable.ExecuteBatch(mergeBatch);
foreach (TableResult res in mergeResults)
{
Assert.AreEqual(res.HttpStatusCode, (int)HttpStatusCode.NoContent);
// Add to delete batch
delBatch.Delete((ITableEntity)res.Result);
}
IList<TableResult> delResults = this.repTable.ExecuteBatch(delBatch);
foreach (TableResult res in delResults)
{
Assert.AreEqual(res.HttpStatusCode, (int)HttpStatusCode.NoContent);
}
}
示例15: DeleteConfirmed
public ActionResult DeleteConfirmed(string tenantId, ServicePrincipalModel editedServicePrincipalList)
{
// Delete all rows for this servicePrincipal list, that is,
// Subscriber rows as well as ServicePrincipal rows.
// Therefore, no need to specify row key.
var listRows = ServicePrincipalModel.GetAllFromStorage(tenantId);
var batchOperation = new TableBatchOperation();
int itemsInBatch = 0;
foreach (DynamicTableEntity listRow in listRows)
{
batchOperation.Delete(listRow);
itemsInBatch++;
if (itemsInBatch == 100)
{
StorageFactory.Instance.IpcAzureAppTenantStateTable.ExecuteBatch(batchOperation);
itemsInBatch = 0;
batchOperation = new TableBatchOperation();
}
}
if (itemsInBatch > 0)
{
StorageFactory.Instance.IpcAzureAppTenantStateTable.ExecuteBatch(batchOperation);
}
return RedirectToAction("Index");
}