2012-03-12 87 views

回答

2

每當初始化一個定義爲IDisposable的對象時,都應該將創建包裝在using語句中。這是一個遵循並確保處置的普遍良好規則。

這包括您的數據上下文。如果你不這樣做,並且控制器在使用數據上下文的過程中拋出異常,那麼最終可能會打開連接。

3

如果你在談論EF數據上下文,答案是否定的,ASP.NET MVC不會自動處理它,但你shouldn't be worried關於把它作爲Stephen Walther在他的博客文章中解釋。這裏有一個similar answer

+1

這個說法呢? 「我認爲任何被認爲是IDisposable的東西都應該被明確地處理;你應該把任何類視爲黑盒子,而不是對其內部實現做出假設,這在未來的版本中可能會改變。」 – devuxer 2012-03-12 16:46:57

+1

我認爲這是危險的建議。作爲一般規則,我會說,如果一個類型實現了'IDisposable',你應該調用'Dispose'(或者使用'''''')。在這個類的「公開可見的表面」上的意圖是你應該調用Dispose。瞭解一些關於爲什麼不適用的特權信息(因爲您已經對它進行了反編譯或者與團隊中的某個開發人員交談)似乎是一個非常不穩固的原因,而不是這樣做。例如,如果此行爲在未來版本中發生了變化,該怎麼辦?恕我直言,只要堅持規則就比較容易,除非你有特定的原因_不要 – 2012-03-12 16:47:39

相關問題