如果我没有做任何改变,我应该完成交易吗?
await using var transaction = await context.Database.BeginTransactionAsync();
var items = await context.Items.OrderBy(i => i.Id).Take(100).ToListAsync();
if (items.Count == 0)
{
await transaction.CommitAsync();
return false;
}
...
如果我只是保留该方法,会有什么危害吗?或者我应该使用await transaction.CommitAsync();
?
任务是在一次交易中接收最多 100 个项目,更改它们,将它们保存到另一个位置,并删除从源收到的项目。
如果有 0 个项目,则不执行任何操作。
当您对上下文的默认行为不满意时,应该使用事务。标准行为如下:
最后执行此操作
await SaveChangesAsync();
,要么一切都将成功完成并自动提交,要么如果出现错误,则会自动回滚。