52 lines
1.3 KiB
C#
Raw Normal View History

2025-04-24 18:31:27 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Practices.Unity.InterceptionExtension;
using MyCode.Project.Infrastructure.Common;
using System.Data.Common;
using MyCode.Project.Repositories.Common;
namespace MyCode.Project.Repositories.Common
{
public class TransactionCallHandler : ICallHandler
{
public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
{
if (BookSqlSugarClient.Ado.Transaction != null) {
IMethodReturn method = getNext()(input, getNext);
if (method.Exception != null)
{
return input.CreateExceptionMethodReturn(method.Exception);
}
return method;
}
BookSqlSugarClient.Ado.BeginTran();
IMethodReturn methodReturn = getNext()(input, getNext);
if (methodReturn.Exception != null) {
BookSqlSugarClient.Ado.RollbackTran();
return input.CreateExceptionMethodReturn(methodReturn.Exception);
}
BookSqlSugarClient.Ado.CommitTran();
return methodReturn;
}
public int Order { get; set; }
public MyCodeSqlSugarClient BookSqlSugarClient { get; set; }
}
}