在现有交易中设置新交易

时间:2018-08-27 07:42:23

标签: c# transactions nested-transactions

我正在用C#编写代码,需要执行以下操作: 1)在交易一的上下文中从表一获取数据 2)打开一个新事务TRANSACTION TWO(不关闭TRANSACTION ONE)以从表TWO中检索一个计数器 3)当我拿到计数器并将事务计数器插入事务1中的表ONE中时,将事务2换通。

在元代码中转译后,应以以下方式出现:

using (IDbConnection oraConnection = new WrappedDbConnection(new OracleConnection(connectionString)))
{
    oraConnection.Open();

    // START TRANSACTION ONE
    using (IDbTransaction oraTransaction = oraConnection.BeginTransaction())
    {
        try
        {
            //Insert into TABLE ONE

            // **** START TRANSACTION TWO ****

            // **** GET COUNTER FROM TABLE TWO ****

            // **** COMMIT TRANSACTION TWO ****

            // Insert counter into TABLE ONE
        }
    }
}

这可能吗?如果可以,该如何实现此结构?

0 个答案:

没有答案