2

多くの新しいオブジェクト (行) とそれらの間の関係を挿入するアプリに取り組んでいます。しかし、エラーが発生した特定の時点で、DataContext へのすべての変更を破棄して「破棄」したいと考えています。エラーが発生した後、データベースの状態と一致する DataContext のクリーンなコピーを取得できます。

4

2 に答える 2

1

編集

.Commit()または、DataContext.Transaction を使用して、それ.Rollback()を変更に使用することもできます。

オリグ

その DataContext を破棄して再インスタンス化するだけです。

何かのようなもの...

public void MyMethod(string connStr)
{
    try
    {
        DataClasses1DataContext dc = new DataClasses1DataContext(connStr);
        for (int i = 0; i < 100; i++)
        {
            try
            {
                //Do Stuff
                //Insert Objects
                dc.SubmitChanges();
            }
            catch (Exception ex) //So if it bombs in the loop, log your exception
            {
                Log(ex);
            }
            finally //Reinstantiate your DC
            {
                dc = new DataClasses1DataContext(connStr);
            }
        }
    }
    catch (Exception bigEx)
    {
        Log(bigEx);
    }
}
于 2009-05-15T08:15:57.107 に答える
1

using ステートメントで TransactionScope を使用することもできます。TransactionScope で .Complete() を呼び出さない場合、破棄されるときにすべての変更がロールバックされます (using ステートメントを離れるときに発生します)。

于 2009-05-15T10:23:15.273 に答える