当删除发生在“foreach”循环中时,删除 Azure 表中的实体时,我没有得到一致的结果。PartitionKey 是唯一的。
是否有人们可以推荐的最佳实践?
为简洁起见,我省略了 Try..Catch 语句。
假设:
var context = new FooContext(_storageAccount);
var query = (from e in context.TableBar
where e.RowKey == rowKey
select e).AsTableServiceQuery();
方法#1
foreach (var entity in query.Execute())
{
// delete each entity
context.DeleteObject(entity);
context.SaveChanges();
}
方法#2
foreach (var entity in query.Execute())
{
// delete each entity
context.DeleteObject(entity);
}
context.SaveChanges();
方法#3
var bars = query.Execute();
foreach (var bar in bars)
context.DeleteObject(bar);
context.SaveChanges();
方法 #1 似乎删除了大多数实体,但通常最后一个实体不会删除。这是一个有效的实体。