2012-01-11 81 views
5

我正在使用實體框架和存儲過程來插入/更新/刪除實體。SQL Server - 報告錯誤返回到.NET

,我做的任務是庫存管理與FIFO/LIFO方法=>那些插入/更新/刪除執行幾項檢查,並可能會失敗(有時會失敗)。

的問題是我要彙報到.NET什麼地方出了錯,爲什麼。我該怎麼做?

目前我使用這樣的事情:

BEGIN --rollback 
ROLLBACK TRAN 
RAISERROR (N'There''s not enough items in stock.', -- message 
    16, -- severity 
    1) -- state 
END; 

我總是得到「MSDTC錯誤」 - 「基礎提供失敗的EnlistTransaction。」

回答

0

您必須檢查的InnerException讓你提出的自定義錯誤。

+0

我已經完成了這個,InnerException爲null。 – kubal5003 2012-01-11 12:16:14

1

我不認爲到目前爲止,它越來越。當其中一個事務啓動時,您的自定義錯誤沒有得到提升,這是錯誤的。

+0

可能是這種情況。問題是,如果一切正常,那麼事務提交很好 - >我的錯誤處理會導致某些事情中斷。我猜想SP中的執行流程不會中斷,當它到達COMMIT時,所有事件都會中斷(因爲事務已經回滾)。實體框架報告最後一個錯誤 - >它不是我的.. – kubal5003 2012-01-16 11:16:36