4

Close()とDispose()について読むと、Using Blockを使用するための参照がたくさん表示されますが、WebMatrix C#Razor構文でUsingBlockを使用する方法をまだ見つけていません。

ですから、例で正確に教えてくれない限り、UsingBlockを使用するという答えは必要ありません。

接続/クエリが完了した後のDatabase.Open()の使用に固有

私の質問は次のとおりです。

  • Close()とDispose()の両方を使用する必要がありますか?
  • Close()を呼び出してからDispose()を呼び出すか、Dispose()を呼び出してからClose()を呼び出すかは重要ですか?

簡単な質問に対する簡単な答えを期待しています。ありがとう

4

1 に答える 1

4

データベースヘルパーのASP.NETWebページフレームワークの例には、要求の最後にDisposeを呼び出すようにフレームワーク自体が設計されているため、CloseまたはDisposeの呼び出しは含まれていません。データベースヘルパーの代わりにADO.NETを使用する場合は、usingステートメントを使用する必要があります。そうは言っても、ブロックを使用してデータベースヘルパー呼び出しをラップすることを妨げるものは何もありません。

IEnumerable<dynamic> floaters = null;
using(var db = Database.Open("MyDb")){
    var sql = "SELECT * From LifeRafts";
    floaters = db.Query(sql);
}

すべてを自分で管理したい場合は、閉じるまたは破棄を呼び出すだけです。どちらの場合も、接続はADO.NET接続プールに返されます。

于 2012-10-29T20:30:20.233 に答える