2012-08-03 49 views
0

我正在編寫一個服務層應用程序,它使用實體框架與數據庫進行交互。使用塊的實體框架上下文

我將我的個人「工作單元」放在一個使用塊中,在這裏我初始化了我的數據上下文。

但是我需要拋出一些異常,將數據庫錯誤傳遞給正在使用我的服務應用程序的應用程序。所以我正在做這樣的事情:

using (dbcontext = new DbContext()) 
{ 
throw new Exception("Error while Saving data"); 
} 

任何人都可以確認這是否好嗎?即使拋出異常,實體框架數據上下文是否會正確處理?

回答

1

是的。在finally塊中處理邏輯編譯時,將using塊轉換爲try/finally塊。

但是,如果Dispose方法拋出異常,則不會拋出異常。

1

是的,這是正確的。從MSDN

using語句可以退出或者當達到使用 語句的結束,或者拋出一個異常,並控制葉片 語句結束前的語句塊。

這就是說,我會拋出一個比Exception一個更具體的例外。

+0

謝謝你。是的,我將在現實中使用更具體的例外:) – gunnerz 2012-08-03 08:39:52