.net如何使用 TransactionScope

来源:互联网 发布:windows phone 8.1降级 编辑:程序博客网 时间:2024/05/10 11:10

         1 概念:TransactionScope是.Net Framework 2.0后,新增了一个名称空间。它的用途是为数据库访问提供了一个“轻量级”[区别于:SqlTransaction]的事物。

          2 使用:添加对 System.Transactions.dll 的引用

          3 示例代码:

        public void OpFaZhanChengYuBeiDangYuan(ZuZhiDangYuanXinXi xxeneity)
        {
            JiaoZhiGongManager jzgmanager = new JiaoZhiGongManager();
            JiaoZhiGongService jzgservice = new JiaoZhiGongService();
            XueShengService xsservice = new XueShengService();
            XueShengManager xsmanager = new XueShengManager();
            using (TransactionScope sp = new TransactionScope())
            {
                try
                {
                   
                    if (xxeneity.DYSF == 1)//教职工
                    {
                        JiaoZhiGong jzgentity = jzgmanager.GetJiaoZhiGongEntity(xxeneity.DYID.Value);
                        jzgentity.ZZMM = new Guid("0321019c-d74f-4117-8ac7-db17d22d9423");//中共预备党员
                        jzgservice.EditJiaoZhiGong(jzgentity);
                    }
                    if (xxeneity.DYSF == 2)//学生
                    {
                        XueSheng xsentity = xsmanager.GetXueShengEntity(xxeneity.DYID.Value);
                        xsentity.ZZMM = new Guid("0321019c-d74f-4117-8ac7-db17d22d9423"); //将学生发展成预备党员
                        xsservice.UpdateXueSheng(xsentity);
                    }
                    service.UpdateZuZhiDangYuanXinXi(xxeneity);
                    sp.Complete();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            }

      4.对MSDTC组件设置:

 步骤:

  在控制面板--->管理工具--->服务 中,开启Distributed Transaction Coordinator 服务。

 a.控制面板->管理工具->组件服务->计算机->我的电脑->右键->属性

 b.选择MSDTC页, 确认"使用本地协调器"

 c.点击下方"安全配置"按钮

 d.勾选: "允许网络DTC访问","允许远程客户端","允许入站","允许出站","不要求进行身份验证".

 e.对于数据库服务器端, 可选择"要求对呼叫方验证"

 f.勾选:"启用事务Internet协议(TIP)事务"。

 g.在双方防火墙中增加MSDTC.exe