0

MVC Web サイトでエンティティ フレームワークを使用しており、using ステートメントを使用してデータベース コンテキストを破棄しています。ここで私の質問は、戻り後に using ステートメントを閉じると、データベース コンテキストが適切に破棄されるかどうかです。元:

 public ActionResult SomeAction(){

      using (var DB = new DatabaseContext()){

       ....           

       return View();                
      }
 }

戻る前に using ステートメントを閉じる必要がありますか? または、私が使用している方法で適切に破棄されます。

4

1 に答える 1

1

戻る前に using ステートメントを閉じる必要がありますか? それとも、私が使用している方法で適切に破棄されますか?

自動的に破棄されます。詳細については、この回答を参照してください。プロセス全体の突然の終了でない限りDispose、メソッドは呼び出されますが、ステートメントは実行されます。using最も一般的なケースは次のとおりです。

  • Areturnブロック内
  • ブロック内でスローされる (キャッチされない) 例外
  • ブロックの終わりに自然に到達する

基本的に、ステートメントはほとんどが/ブロックusingのシンタックス シュガーであり、すべて同じプロパティを持ちます。tryfinallyfinally

C# 4 仕様のセクション 8.13 から:

usingステートメントは、取得、使用、および廃棄の 3 つの部分に翻訳されます。リソースの使用は、句tryを含むステートメントで暗黙的に囲まれています。finallyこのfinally句は、リソースを破棄します。

于 2013-09-01T09:25:39.253 に答える