我最近一直在阅读一些Azure代码,并想知道为什么我在互联网上看到的示例似乎没有利用每次往返的多个操作。是否有人不像这样编码他们的DataSource:
ForumDataSource.cs
public void DeleteThread(params ForumThread[] itemToDelete)
{
foreach (var item in itemToDelete)
{
_ServiceContext.AttachTo(ForumDataServiceContext.ForumThreadTableName, item, "*");
_ServiceContext.DeleteObject(item);
}
_ServiceContext.SaveChanges();
}
这样可以发生多次删除,编程模型非常干净。
答案 0 :(得分:3)
确保在调用SaveChanges时使用SaveChangesOptions.Batch ...否则所有操作都将作为单个事务完成。通过该更改,上面的代码应该没问题,假设您要删除的所有项目都是同一个表的同一分区的一部分,并且不超过一百个(这是Windows Azure表的限制)。