最近在做接口时发现,在一些特殊业务处理下,很少有人用到事务的处理,特别是在批量操作不同表的时候,表之间存在着关联,一个不小心就会引起表数据的错乱,特意去看了下ABP框架中对事务的简单处理
以下附上一段编码作为备忘
IUnitOfWorkManager _unitOfWorkManager;
using (var unitOfWork = _unitOfWorkManager.Begin()) //启用工作单元
{
try
{
foreach (var input in inputs)
{
var model = input.MapTo<Model>();
model.Type = dic.Where(x => x.Key == model.Type).First().Value;
var tmp = _repository.Update(model);
}
unitOfWork.Complete(); //提交事务
}
catch (Exception ex)
{
builder.AppendLine(ex.Message);
}
}