var blog = await _blogRepository.InsertAsync(ObjectMapper.Map<AddBlogInputDto, Blog>(inputDto));
//查询不到数据,返回null
var newblog = await _blogRepository.FindAsync(blog.Id);
//加上此行代码后,若插入异常,执行此行代码后回滚并且不会再往下走
//不加此代码,若插入异常会继续往下执行
await CurrentUnitOfWork.SaveChangesAsync();
//能查询到数据,但是此条数据其实未入库,等整个最外层结束之后才入库
var newblog1 = await _blogRepository.FindAsync(blog.Id);
return blog.Id;
requiresNew:是否支持嵌套事务
isTransactional:是否开启数据库事务
using var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true);
var blog = await _blogRepository.InsertAsync(ObjectMapper.Map<AddBlogInputDto, Blog>(inputDto));
//若插入异常,执行完这行代码则回滚且不会再往下走
await uow.SaveChangesAsync();
//虽然数据还未入库,但执行此行代码能查询到数据信息
var newblog = await _blogRepository.FindAsync(blog.Id);
//若执行此行代码之前无异常,执行完此行代码后数据便已入库,
await uow.CompleteAsync();
return blog.Id;
标签:VNext,blog,代码,await,Id,Abp,var,SaveChanges,blogRepository
From: https://www.cnblogs.com/mingcore/p/18555347