添加事务、完善注释

This commit is contained in:
橙子
2022-04-13 21:36:50 +08:00
parent 04a3b1b01f
commit d51d31899f
6 changed files with 77 additions and 2 deletions

View File

@@ -23,7 +23,8 @@ namespace Yi.Framework.ApiMicroservice.Controllers
{
private IStringLocalizer<LocalLanguage> _local;
private IUserService _iUserService;
public TestController(ILogger<UserEntity> logger, IUserService iUserService, IStringLocalizer<LocalLanguage> local)
//你可以依赖注入服务层各各接口,也可以注入其他仓储层,怎么爽怎么来!
public TestController(ILogger<UserEntity> logger, IUserService iUserService, IStringLocalizer<LocalLanguage> local)
{
_local = local;
_iUserService = iUserService;
@@ -34,9 +35,28 @@ namespace Yi.Framework.ApiMicroservice.Controllers
/// </summary>
/// <returns></returns>
[HttpGet]
/// 特点:仓储代理上下文对象,用起来就是爽
// 特点:化繁为简!意框架仓储代理上下文对象,用起来就是爽,但最好按规范来爽!
// 规范控制器建议不要使用切换仓储方法控制器严禁使用DB上下文对象其它怎么爽怎么来
public async Task<Result> DbTest()
{
//非常好使用UserService的特有方法
await _iUserService.DbTest();
//非常好依赖注入使用其他Service的特有方法(就tm一张表自己注入自己)
await _iUserService.DbTest();
//很核理,使用仓储的通用方法
await _iUserService._repository.GetListAsync();
//挺不错,依赖注入其他仓储(就tm一张表自己注入自己)
await _iUserService._repository.GetListAsync();
//不建议,但爽了再说,直接切换其他仓储(就tm一张表自己切换自己)
await _iUserService._repository.ChangeRepository<Repository<UserEntity>>().GetListAsync();
//恭喜你已经毕业了!此后将有一天,接手到这个的软件的程序员将破口大骂。
await _iUserService._repository._Db.Queryable<UserEntity>().ToListAsync();
return Result.Success().SetData(await _iUserService.DbTest());
}
@@ -45,6 +65,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
/// </summary>
/// <returns></returns>
[HttpGet]
//根据浏览器语言设置来切换输出
public Result LocalTest()
{
return Result.Success().SetData(_local["succeed"]);
@@ -71,5 +92,35 @@ namespace Yi.Framework.ApiMicroservice.Controllers
{
return Result.Success();
}
/// <summary>
/// 异步事务测试
/// </summary>
/// <returns></returns>
[HttpGet]
//注册一个用户获取它的信息之后再更新它,但是这个年龄可能会报错
//如果一个事务中有任何一个错误,将会把所有执行过的操作进行回滚,确保数据的原子性
public async Task<Result> TranTest()
{
UserEntity user = new() { UserName = $"杰哥{DateTime.Now}", Password = "5201314", Age = 99 };
var res = await _iUserService._repository.UseTranAsync(async () =>
{
await _iUserService.Register(user, (o) => user = o);
user.Age = 18 / (new Random().Next(0, 2));
await _iUserService._repository.UpdateAsync(user);
});
if (res)
{
return Result.Success("执行成功!");
}
else
{
return Result.Error("发生错误,插入已回滚!");
}
}
//emmmm看来一张表已经满足不了接下来将要大更新一波
}
}