2011-03-09 93 views

回答

37

是的,它會; DbConnection.Dispose()的實現調用Close()(以及派生實現)。

+1

它不取決於派生類是否重寫Dispose(bool)方法?如果派生類沒有覆蓋它並調用'Close()',那麼連接將不會在使用塊結束時關閉(當調用Dispose時) – alwayslearning 2011-09-01 13:31:19

+1

很確定AL的註釋是準確的,因爲DBConnection實際上並沒有重寫Dispose由System.ComponentModel.Component提供。在實踐中,雖然我懷疑有沒有任何DBConnection實現不會覆蓋Dispose並關閉任何連接作爲一個連接類,在它本身之後不會清理的連接類將是一個很差的實現。 – 2015-02-27 11:51:22

3

肯定是的,因爲它會配置連接並在配置連接的內部邏輯之前調用close。

3

使用塊將通過調用Dispose()方法確保DbConnection對象的銷燬。 Dispose()方法將依次調用Close()方法,並且必須等待它完成關閉與數據庫的連接。