2009-05-15 8 views

Antwort

1

bearbeiten

Alternativ können Sie die Verwendung des DataContext.Transaction machen, und verwenden, die auf .Commit() oder .Rollback() Ihre Änderungen.

ORIG

Werfen Sie einfach weg, dass Datacontext & es Re-instanziiert. wie

Etwas ...

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

Sie könnten auch die Transaction in einer using-Anweisung verwenden. Wenn Sie für das TransactionScope .Complete() nicht aufrufen, werden alle Änderungen zurückgesetzt, wenn sie entfernt werden (was beim Verlassen der using-Anweisung geschieht).