使用IBatisNet做网站开发,里面涉及到事务问题,我单独写了一个事务处理类/// <summary>
/// 事务处理类,多个数据库操作语句同步执行
/// </summary>
public class TransactionHelp : BaseService
{
private static TransactionHelp instance = null; public static TransactionHelp GetInstance()
{
if (instance == null)
{
instance = new TransactionHelp();
}
return instance;
}
public void Do(<形参> <执行的多个操作>)
{
this.DaoManager.BeginTransaction();
try
{
<执行的多个操作> this.DaoManager.CommitTransaction();
}
catch (Exception ex)
{
this.DaoManager.RollBackTransaction();
throw new AppException("事务执行出错!",ex);
} }
}如果要在业务类里进行事务操作,如在新增一个用户里UserAdd.cs中这样调用public void btnAddSave(object sender)
{
User user = new User();
user.UserId = "test";
user.UserName = "测试用户"; UserRole userRole = new UserRole();
userRole.UserId = "test";
userRole.RoleId = "0001"; //以下我要执行两个操作将以上两个对象写到数据库
操作一:UserService.GetInstance().CreateUser(user);
操作二:UserRole.GetInstance().CreateUserRole(userRole); //问:如果将以上两个操作作为参数传递给TransactionHelp.GetInstance().Do
//问:TransactionHelp.GetInstance().Do中的<形参>及 <执行的多个操作>如何写 TransactionHelp.GetInstance().Do(<参数>);
}问:如果将以上两个操作作为参数传递给TransactionHelp.GetInstance().Do
问:TransactionHelp.GetInstance().Do中的<形参>及 <执行的多个操作>如何写另外不想将操作一和操作二放到另一个函数里括起来,为了通用性直接用我以上的写法处理,求各位大侠各显神通
/// 事务处理类,多个数据库操作语句同步执行
/// </summary>
public class TransactionHelp : BaseService
{
private static TransactionHelp instance = null; public static TransactionHelp GetInstance()
{
if (instance == null)
{
instance = new TransactionHelp();
}
return instance;
}
public void Do(<形参> <执行的多个操作>)
{
this.DaoManager.BeginTransaction();
try
{
<执行的多个操作> this.DaoManager.CommitTransaction();
}
catch (Exception ex)
{
this.DaoManager.RollBackTransaction();
throw new AppException("事务执行出错!",ex);
} }
}如果要在业务类里进行事务操作,如在新增一个用户里UserAdd.cs中这样调用public void btnAddSave(object sender)
{
User user = new User();
user.UserId = "test";
user.UserName = "测试用户"; UserRole userRole = new UserRole();
userRole.UserId = "test";
userRole.RoleId = "0001"; //以下我要执行两个操作将以上两个对象写到数据库
操作一:UserService.GetInstance().CreateUser(user);
操作二:UserRole.GetInstance().CreateUserRole(userRole); //问:如果将以上两个操作作为参数传递给TransactionHelp.GetInstance().Do
//问:TransactionHelp.GetInstance().Do中的<形参>及 <执行的多个操作>如何写 TransactionHelp.GetInstance().Do(<参数>);
}问:如果将以上两个操作作为参数传递给TransactionHelp.GetInstance().Do
问:TransactionHelp.GetInstance().Do中的<形参>及 <执行的多个操作>如何写另外不想将操作一和操作二放到另一个函数里括起来,为了通用性直接用我以上的写法处理,求各位大侠各显神通
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货