1

我最近一直在阅读一些 Azure 代码,想知道为什么我在 Internet 上看到的示例似乎没有利用每次往返的多个操作。人们是否有理由不这样编码他们的数据源:

论坛数据源.cs

   public void DeleteThread(params ForumThread[] itemToDelete)
    {
        foreach (var item in itemToDelete)
        {
            _ServiceContext.AttachTo(ForumDataServiceContext.ForumThreadTableName, item, "*");
            _ServiceContext.DeleteObject(item);
        }
        _ServiceContext.SaveChanges();
    }

这样可以发生多次删除,并且编程模型非常干净。

4

1 回答 1

3

请务必在调用 SaveChanges 时使用 SaveChangesOptions.Batch... 否则所有操作都将作为单独的事务完成。通过该更改,上面的代码应该没问题,假设您要删除的所有项目都是同一个表的同一分区的一部分,并且不超过一百个(这是 Windows Azure 表的限制)。

于 2010-09-18T19:31:25.710 回答