0
如果我的問題看起來很愚蠢,但我完全不熟悉Workflow。我想要做的是:我在Workflow Foundation項目中有一些數據庫命中,而在ASP.NET應用程序中有一些數據庫命中。我試圖實現的是在同一個事務中在Workflow基礎和ASP.NET中執行數據庫操作。告訴我可能嗎?我正在使用linq2sql。在工作流程中使用相同的交易
這裏是我的代碼:
using(var context = new MyDBContext())
{
context.Transaction = context.Connection.BeginTransaction();
//Here I am calling my Workflow function
using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
{
AutoResetEvent waitHandle = new AutoResetEvent(false);
workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e)
{
waitHandle.Set();
if ((string)e.OutputParameters["OutputMessage"] != "")
msg = "Workflow error : " + (string)e.OutputParameters["OutputMessage"];
};
workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)
{
Console.WriteLine("ERROR: " + e.Exception.Message);
waitHandle.Set();
};
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(MyWorkflow), parameters);
instance.Start();
waitHandle.WaitOne();
}
//DB Operation in ASP.NET
context.DbOperation();
context.SubmitChanges();
context.Transaction.Commit();
}
即使我在Workflow中管理事務,如何將完整的數據庫操作放在一個事務中?我的意思是我的數據庫操作的50%在Web應用程序中,50%在工作流程中。 –
您可以使用從數據庫讀取的數據爲工作流提供工作流,讓工作流程處理並僅在工作流程終止時更新數據庫。 – xing
您的意思是將整個數據作爲參數傳遞給Workflow並執行數據庫操作? –