也谈 .NET2.0中避免分布式事务

http://tech.ddvip.com   2007年08月25日    社区交流

内容摘要:.NET Framework 2.0 版中新增的 TransactionScope 单独使用确实很方便。但是在实际项目中都有自己的访问层,如何才能和自己的数据访问层结合起来使用呢?

  .NET Framework 2.0 版中新增的 TransactionScope 单独使用确实很方便。但是在实际项目中都有自己的访问层,如何才能和自己的数据访问层结合起来使用呢?

  在项目中我是这样处理数据的:

/**//// <summary>
/// 外包业务访问类
/// </summary>
public class OutSourcingDAO
{
/**//// <summary>
/// 增加
/// </summary>
/// <param name="bt"></param>
/// <returns></returns>
public int InsertGetIdentity(OutSourcing bt)
{
 return new DAHelper(DataAccess.Create()).InsertGetIdentity(bt);
}
/**//// <summary>
/// 更新
/// </summary>
/// <param name="bt"></param>
/// <returns></returns>
public int Update(OutSourcing bt)
{
 return new DAHelper(DataAccess.Create()).Update(bt);
}
/**//// <summary>
/// 删除
/// </summary>
/// <param name="bt"></param>
/// <returns></returns>
public int Delete(OutSourcing bt)
{
 return new DAHelper(DataAccess.Create()).Delete(bt);
}
}

  上面 OutSourcing 为与表相对应的实体类 ;DAHelper 为作者自己实现的一个包装类,可以对任意实体进行增加,修改,删除 查询等功能。

再贴一段代码:

public int ExecSql(string strSql)
{
 try
 {
  this.OpenConnection();
  cmd.CommandType = CommandType.Text;
  cmd.CommandText = strSql;
  return cmd.ExecuteNonQuery();
 }
 catch (System.Exception e)
 {
  throw this.CatchException(e);
 }
 finally
 {
  this.CloseConnection();
 }
}

  我最终通过调用 ExecSql 方法来与数据库交互,而该方法会自己打开数据库连接,执行语句,然后关闭连接。

来源:DotNet1010    责编:豆豆技术应用

正在加载评论...