0

Code First in ADO.Net EF 4 CTP 3 を見て、ウォークスルーSqlConnectionの がどのように処理されているのか疑問に思いました。それはContextBuilderの責任ですか?例から抜けていますか?

  var connection = new SqlConnection(DB_CONN);
  var builder = new ContextBuilder<BloggingModel>();
  var connection = new SqlConnection(DB_CONN);

  using (var ctx = builder.Create(connection))
  {
      //... 
  }
4

2 に答える 2

1

ObjectContext.Disposing にイベント ハンドラーを追加して、これを解決できることに気付きました。

少なくとも CTP 3 では、ObjectContext が破棄されるときにConnection は破棄されません。

既に ObjectContext をサブクラス化しているので、サブクラスに IDisposable を実装し、そこから Connection.Dispose() を呼び出します。

于 2010-06-11T04:07:06.727 に答える
0

CloseDisposeinSqlConnectionは機能的に同等です。したがって、接続が閉じられている限り (そうであることがわかると思いますが、私の言葉を鵜呑みにしないでください)、サンプル コードは機能します。

しかし、あなたが尋ねたので、とにかくそれを処分する必要があります。害はなく、他の人が同じ質問をするのを防ぐことができます.

于 2010-06-11T02:48:47.333 に答える