私はMSDNで次の例を見ました。
exManager.Process(() =>GetDataSet("GetAllCustomers"), "Data Access Policy");
メソッドにデータベース接続またはファイルハンドルがある場合はそれを破棄するためのアイデア/テクニックはありますGetDataSet
か?たとえば、finallyブロックを追加する必要がありますか?お知らせ下さい。
私はMSDNで次の例を見ました。
exManager.Process(() =>GetDataSet("GetAllCustomers"), "Data Access Policy");
メソッドにデータベース接続またはファイルハンドルがある場合はそれを破棄するためのアイデア/テクニックはありますGetDataSet
か?たとえば、finallyブロックを追加する必要がありますか?お知らせ下さい。
C#には非常に便利なusing
演算子があります。
using (var db = GetDbContext())
{
GetDataSet(db, "GetAllCustomers");// data access code
}
上記のブロックは、実質的に次のものと同等です。
{
DbContext db;
try
{
var db = GetDataSet(db, "GetAllCustomers");
// data access code
}
finally
{
db.Dispose();
}
}
例外がスローされたかどうかに関係なく、コンテキストはブロックの最後に配置されます。