update UnitOfWorkManager demo

This commit is contained in:
28810
2020-05-01 06:41:58 +08:00
parent 0ffea2b871
commit bae0f1c63e
3 changed files with 35 additions and 4 deletions

View File

@ -2,6 +2,7 @@
using FreeSql.DataAnnotations;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System.Threading.Tasks;
namespace aspnetcore_transaction.Controllers
{
@ -16,12 +17,22 @@ namespace aspnetcore_transaction.Controllers
_logger = logger;
}
[HttpGet]
[HttpGet("1")]
//[Transactional]
virtual public object Get([FromServices] BaseRepository<Song> repoSong, [FromServices] BaseRepository<Detail> repoDetail, [FromServices] SongRepository repoSong2,
[FromServices] SongService serviceSong)
{
serviceSong.Test();
serviceSong.Test1();
return "111";
}
[HttpGet("2")]
//[Transactional]
async virtual public Task<object> GetAsync([FromServices] BaseRepository<Song> repoSong, [FromServices] BaseRepository<Detail> repoDetail, [FromServices] SongRepository repoSong2,
[FromServices] SongService serviceSong)
{
await serviceSong.Test2();
await serviceSong.Test3();
return "111";
}
}
@ -40,12 +51,29 @@ namespace aspnetcore_transaction.Controllers
}
[Transactional(Propagation = Propagation.Nested)] //sqlite 不能嵌套事务,会锁库的
public virtual void Test()
public virtual void Test1()
{
_repoSong.Insert(new Song());
_repoDetail.Insert(new Detail());
_repoSong2.Insert(new Song());
}
[Transactional(Propagation = Propagation.Nested)] //sqlite 不能嵌套事务,会锁库的
async public virtual Task Test2()
{
await _repoSong.InsertAsync(new Song());
await _repoDetail.InsertAsync(new Detail());
await _repoSong2.InsertAsync(new Song());
}
[Transactional(Propagation = Propagation.Nested)] //sqlite 不能嵌套事务,会锁库的
async public virtual Task<object> Test3()
{
await _repoSong.InsertAsync(new Song());
await _repoDetail.InsertAsync(new Detail());
await _repoSong2.InsertAsync(new Song());
return "123";
}
}
public class SongRepository : DefaultRepository<Song, int>