2016-04-03 6 views
0

Ich habe ein Problem bei der Verwendung von SubmitChanges() und InsertOnSubmit(), Wenn die SubmitChanges fehlschlagen und eine Ausnahme auslösen, bleibt die Änderungsmenge mit dem Objekt gefüllt, das einen Konflikt in der db hat (zB der Primärschlüssel) ist bereits vorhanden). Das Problem ist, dass die SubmitChanges fehlschlagen, wenn ich den Teil des Codes, der das Element in die Datenbank einfügt, erneut ausführen, weil das Objekt mit dem falschen Primärschlüssel im Änderungssatz ist. Die Frage ist, wie man das erste obj aus der Änderungsmenge löscht?C# linq discrad InsertOnSubmit

private void bInsInserisci_Click(object sender, RoutedEventArgs e) 
    { 
     Prodotto tmp = new Prodotto(); 
     try { 
      tmp.idProdotto = InsProdCodProd.Text; 
      tmp.tempo = Int32.Parse(InsProdTemp.Text); 
      tmp.note = InsProdNote.Text; 
      prodotti.InsertOnSubmit(tmp); 
      db.SubmitChanges(); 
     } 
     catch { 
      System.Data.Linq.RefreshMode.KeepCurrentValues 
     } 

    } 

Dank

+0

Verwenden Sie Ersetzen anstelle von Einfügen. – jdweng

+0

Seitennotiz - verwenden Sie nur Englisch in Ihren Variablen- und Methodennamen. Du wirst mir später danken. – Neolisk

Antwort

0

Warum den Kontext nicht verwerfen? Werfen Sie einen Blick auf this Artikel über die Lebensdauer eines L2S Datenkontextes. "DataContext könnte nach SubmitChanges() verwendet werden, aber man muss vorsichtig sein."