2011-01-19 27 views
1

我有一個圖像上傳處理程序(.ASHX)。我將圖像元數據存儲在數據庫中,並將該條目的ID映射到數據庫中。我在調用SubmitChanges之後使用LINQ並獲取ID。然後我使用該ID來保存圖像。如果File.SaveAs失敗,我顯然想要回滾插入。我的代碼是否正確?LINQ和處理回滾

using (UserDataContext userDataContext = new UserDataContext()) 
{ 
    GalleryImage galleryImage = new GalleryImage(); 
    galleryImage.metaName = "some meta stuff"; 
    userDataContext.GalleryImages.InsertOnSubmit(galleryImage); 
    System.Data.Common.DbTransaction transaction = userClassContext.Transaction; 
    userDataContext.SubmitChanges(); 
    try 
    { 
     string targetPath = "somepath/" + galleryImage.Id; 
     file.SaveAs(targetFilePath); 
    } 
    catch 
    { 
     transaction.Rollback(); 
    } 
} 

感謝

回答

0

這是部分正確。

但是,在調用SubmitChanges()之前,您需要明確創建一個事務。

+0

我現在已經編輯了,它是否正確?謝謝 – Peuge 2011-01-19 08:13:41