小编use*_*694的帖子

在ForEach循环中删除Azure表实体的最佳实践

当在"foreach"循环中删除时,在删除Azure表中的实体时,我没有得到一致的结果.PartitionKey是唯一的.

是否有人可以推荐的最佳做法?

为简洁起见,我遗漏了Try..Catch语句.

假设:

var context = new FooContext(_storageAccount);

        var query = (from e in context.TableBar
                                where e.RowKey == rowKey
                                select e).AsTableServiceQuery();
Run Code Online (Sandbox Code Playgroud)

方法#1

                foreach (var entity in query.Execute())
            {
                    // delete each entity
                    context.DeleteObject(entity);
                    context.SaveChanges();
            }
Run Code Online (Sandbox Code Playgroud)

方法#2

            foreach (var entity in query.Execute())
            {
                    // delete each entity
                    context.DeleteObject(entity);
            }
            context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

方法#3

            var bars = query.Execute();
            foreach (var bar in bars)
                context.DeleteObject(bar);
            context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

方法#1似乎删除了大多数实体,但通常最后一个实体不会删除.这是一个有效的实体.

c# azure-table-storage

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

azure-table-storage ×1

c# ×1