Closed my6521 closed 1 year ago
是的,方法上加拦截事务
使用AspectCore的拦截可以这样写吗?
public class TransactionAttribute : AbstractInterceptorAttribute
{
public IsolationLevel Level { get; set; } = IsolationLevel.Unspecified;
public async override Task Invoke(AspectContext context, AspectDelegate next)
{
var sqlSugarClient = context.ServiceProvider.GetService<ISqlSugarClient>();
var inTransaction = sqlSugarClient.Ado.Transaction != null;
if (inTransaction)
{
await next.Invoke(context); return;
}
try
{
sqlSugarClient.Ado.BeginTran(Level);
await next(context);
sqlSugarClient.Ado.CommitTran();
}
catch
{
sqlSugarClient.Ado.RollbackTran();
}
}
}
可以的 你这个是scope周期的注入吧
是scope,没问题吧?
是的 单库用db.ado是OK的
这样是同一个ISqlSugarClient的事务就没问题
是的
嵌套也解决了
可以的
ok,tks
先关闭,如果还有问题可以发新的issues
AOP事务是什么意思 方法特性加事务吗