2014-01-16 20 views
0

我不是在談論數據庫級別的事務。我希望在對象級別實現事務。這裏是我的代碼:如何處理.net對象中的事務?

WorkQueue wq = new WorkQueue(); 
wq.OWNER_ID = user.EmployeeId; 
wq.OWNER_NM = user.FullName; 
wq.WQ_DETAILS = txtDetails.Text; 
wq.SOURCE_INFO = txtSource.Text; 
wq.PRIORITY_ID = Convert.ToInt32(ddlRequestType.SelectedItem.Value); 
wq.PRO_ID = Convert.ToInt32(ViewState["pro_id"]); 
wq.GROUP_ID = Convert.ToInt32(ViewState["cat_id"]); 
wq.Save(); 

WQAttachment attachment = new WQAttachment(); 
attachment.ATTACH_SIZE = FileUpload1.PostedFile.ContentLength.ToString(); 
attachment.ATTACH_FILE = FileUpload1.FileBytes; 
attachment.WQ_ID = wq.WQ_ID.Value; 
attachment.ATTACH_FILE_NM = FileUpload1.FileName; 
attachment.ATTACH_NM = "Upload test"; 
attachment.ATTACH_TYPE = FileUpload1.PostedFile.ContentType; 
attachment.Save(); 

有沒有一種方法,我可以在一個事務中把這個包,所以如果attachment.save失敗,它應回滾wq.save。謝謝!

我看到一個關於TransactionScope的SO答案,我可以在上面的例子中使用它嗎? Transactions in .net

+1

什麼是「WorkQueue」?它處理交易嗎?如果不是,那麼答案是「否」 –

+0

這是簡單的POCO。它不處理事務,但我可以更改代碼以在該類中實現sql事務。 – WinFXGuy

+0

「簡單的POCO」和「SQL」 - 我認爲你需要解釋更多。顯然,它是持久的。請在您的問題中提供一些關於這些課程的信息。 –

回答

0

System.TransactionScope非常適合這種情況。謝謝@Aaron和@JohnSaunders