C# 用于删除或更新多个对象的Azure表模式
我最近读了一些Azure代码,想知道为什么我在互联网上看到的示例似乎没有利用每次往返的多个操作。人们不这样编码数据源有什么原因吗: ForumDataSource.csC# 用于删除或更新多个对象的Azure表模式,c#,azure,azure-table-storage,C#,Azure,Azure Table Storage,我最近读了一些Azure代码,想知道为什么我在互联网上看到的示例似乎没有利用每次往返的多个操作。人们不这样编码数据源有什么原因吗: ForumDataSource.cs public void DeleteThread(params ForumThread[] itemToDelete) { foreach (var item in itemToDelete) { _ServiceContext.AttachTo(ForumD
public void DeleteThread(params ForumThread[] itemToDelete)
{
foreach (var item in itemToDelete)
{
_ServiceContext.AttachTo(ForumDataServiceContext.ForumThreadTableName, item, "*");
_ServiceContext.DeleteObject(item);
}
_ServiceContext.SaveChanges();
}
这样就可以进行多次删除,并且编程模型非常干净。一定要使用SaveChangesOptions.Batch调用SaveChanges时。。。否则,所有操作都将作为单个事务进行。有了这个更改,上面的代码就可以了,假设您要删除的所有项都是同一个表的同一分区的一部分,并且不超过一百个(这是WindowsAzure表的限制)