0

私はMSDNで次の例を見ました。

exManager.Process(() =>GetDataSet("GetAllCustomers"), "Data Access Policy");

メソッドにデータベース接続またはファイルハンドルがある場合はそれを破棄するためのアイデア/テクニックはありますGetDataSetか?たとえば、finallyブロックを追加する必要がありますか?お知らせ下さい。

4

1 に答える 1

0

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();
    }
}

例外がスローされたかどうかに関係なく、コンテキストはブロックの最後に配置されます。

于 2013-01-26T14:32:49.227 に答える