共用方式為


工作流程交易

WF 提供參與交易的支援 System.Transactions ,方法是使用 TransactionScope 活動來設定交易單位的範圍。 System.Transactions.TransactionScope必須明確完成,然而,System.Activities.Statements.TransactionScope活動在成功完成時會隱含地呼叫交易完成。 任何包含在Body活動的TransactionScope中的活動都參與交易。 WF 可以使用 TransactedReceiveScope 活動,將交易流動至工作流程。 如同活動 TransactionScope ,包含在 Body 中的任何活動都參與交易。 WF 可確保依賴 Transaction.Current 的活動能同時與 TransactionScopeTransactedReceiveScope 搭配運作。 如果系統提供的活動無法解決所有需求,可以使用 來建立 RuntimeTransactionHandle 自定義活動,以啟用進階流程和交易控制案例。

在下列範例中,會建構一個工作流程,其中包含一個 Sequence 活動,該活動包含了包括 TransactionScope 活動在內的子活動。 Body活動在由TransactionScope活動初始化的交易中執行TransactionScope活動。

static Activity ScenarioOne()
{
    return new Sequence
    {
        Activities =
        {
            new WriteLine { Text = "    Begin workflow" },

            new TransactionScope
            {
                Body = new Sequence
                {
                    Activities =
                    {
                        new WriteLine { Text = "    Begin TransactionScope" },

                        new PrintTransactionId(),

                        new TransactionScopeTest(),

                        new WriteLine { Text = "    End TransactionScope" },
                    },
                },
            },

            new WriteLine { Text = "    End workflow" },
        }
    };
}

如需詳細資訊,關於如何使用 TransactedReceiveScope,請參閱 將交易流入和流出工作流程服務

另請參閱