2012-12-18 40 views
2

我有一個稍微過度工程的代碼,需要使用DataContext以及SqlConnectionThis MSDN article如何將SqlConnection和DataContext一起使用?

如果您提供一個打開的連接,DataContext將不會關閉它。因此,除非你有充分的理由這樣做,否則不要用開放連接實例化DataContext。

在我的代碼,我會有效地有這樣的:

using(var connection = new SqlConnection(connectionString)) { 
    connection.Open(); 
    // some action 
    using(var context = new DataContext(connection)) { 
     //some action with the context object 
    } 
    //more action with the connection 
} 

對我來說,它看起來很好 - 連接將得到封閉外using崩潰時。然而,這是我不應該這樣做的措辭。

上面的代碼片段正確地使用了兩個類嗎?我應該期待什麼問題嗎?

+2

你有什麼應該關閉連接。警告的要點是內部使用不會關閉連接。 – Paparazzi

回答

3

你的意圖應該是保持連接的生活,並通過連接到所有的方法,在開始時打開它,並在最後關閉,以提高性能,這很好,但看起來很繁瑣。並且「連接」將被傳遞,甚至被業務邏輯層引用。

也許你應該找到一個更好的方法。 :)

相關問題