Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于删除或更新多个对象的Azure表模式_C#_Azure_Azure Table Storage - Fatal编程技术网

C# 用于删除或更新多个对象的Azure表模式

C# 用于删除或更新多个对象的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

我最近读了一些Azure代码,想知道为什么我在互联网上看到的示例似乎没有利用每次往返的多个操作。人们不这样编码数据源有什么原因吗:

ForumDataSource.cs

   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表的限制)