当在"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似乎删除了大多数实体,但通常最后一个实体不会删除.这是一个有效的实体.