开发者社区> 问答> 正文

RDSforsqlserver怎样使用事务?


有两个数据库ds_server_a/catalog_a和ds_server_b/catalog_b,代码如下所示,怎样能够保持db和db2使用同一个transaction呢?求赐教!

var dbFactory = new OrmLiteConnectionFactory(
                "Data Source=ds_server_a;Initial Catalog=catalog_a;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False",
                SqlServerDialect.Provider);

            var otherDbFactory = new OrmLiteConnectionFactory(
                "Data Source=ds_server_b;Initial Catalog=catalog_b;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False",
                SqlServerDialect.Provider);
            try
            {
                using (IDbConnection db = dbFactory.OpenDbConnection())
                {
                    using (IDbConnection db2 = otherDbFactory.OpenDbConnection())
                    {
                        using (IDbTransaction tran = db.OpenTransaction())
                        {
                            db.Insert(new BaoLi2136 { Id = 2140, content = "Employee 1" });

                            db2.Insert(new Bl2136
                            {
                                id = 2140,
                                phone = "123123123",
                            });
                            tran.Commit();

                        }
                    }
                }
            }
            catch (Exception ee)
            {
                Console.WriteLine(ee.Message);
            }

展开
收起
独孤旅途 2015-05-19 00:39:41 11366 0
1 条回答
写回答
取消 提交回答
  • 长期在电子商务行业从事SQL Server的设计,开发与维护,拥有10年的相关经验,擅长数据库的架构与设计,擅长数据库的性能优化,擅长数据库的自动化和智能化运维,从2014年开始, 在云计算领域坚持奋斗, 阿里云SQL Server系列产品的设计与规划者


    从上面描述看,是需要在两个实例上做一个分布式事务,分布式事务需要启动MSDTC来管理,RDS现在还不支持两个实例的分布式事务。所以我建议还是根据你的实际情况,从业务上实现。
    2015-05-25 10:20:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
事务、全局索引、透明分布式 立即下载
Android插件化-从入门到"放弃" 立即下载
低代码开发师(初级)实战教程 立即下载