2016-11-17 2 views
0

Ich versuche gerade Werte in meiner Datenbank zu aktualisieren. Mein Code funktionierte einwandfrei, bis ich der Datenbank einen neuen Wert hinzugefügt habe. Ich habe meine DataClasses1.dbml aktualisiert und es zeigt die neue Spalte, die ich der Datenbank hinzugefügt habe. Ich bekomme immer noch eine Stackoverflow-Ausnahme, wenn context.SubmitChanges() aufgerufen wird. Die ChangeSet enthält zwei Objekte, die aktualisiert werden soll (Update 5 Spalten pro Zeile in diesem Fall)DataClassesDatacontext Stackoverflow beim Übermitteln von Änderungen

  var customers = new List<Customer>(); 
      using (var context = new DataClasses1DataContext()) 
      { 
       var result = from custs in context.Customer 
          where custs.ACTION_ID == desRequest.First().ACTION_ID && 
            !custs.ARCHIVATED 
          select custs; 

       Inputvalidation.SetAddressLines(ref result); 
       context.SubmitChanges(); 
       customers = result.ToList(); 
      } 

context.GetChangeSet zeigt:

{{Inserts: 0, Deletes: 0, Updates: 2}} 
    Deletes: Count = 0 
    Inserts: Count = 0 
    Updates: Count = 2 

Vor dem Update jeder Zeile Ich bin das Hinzufügen neuer Kunden von einem json-post in nancyfx mit diesem Code (die noch zu meiner Überraschung wie vorgesehen funktioniert)

private static bool AddItems(string request) 
    { 
     // Hier alle sammeln und in einem wisch rein 
     var customers = JsonConvert.DeserializeObject<IEnumerable<Customer>>(request); 
     foreach (var cstmr in customers) 
     { 
      using (var context = new DataClasses1DataContext()) 
      { 
       context.Customer.InsertOnSubmit(cstmr); 
       try 
       { 
        context.SubmitChanges(); 
       } 
       catch (Exception) 
       { 
        //TODO: Hier ggfs. reparieren 
        context.SubmitChanges(); 
        return false; 
       } 
      } 
     } 
     return true; 
    } 

Dies sind die Fehlerdetails: These are the error- "Das Programm" [8028] iisexpress.exe "wurde mit Code -2147023895 (0x800703e9) erstellt."

Der Stacktrace zeigt null. Was mache ich falsch und was kann ich verbessern?

+0

Was ist der Stack-Trace Ihrer Ausnahme? Das hilft bei Stapelüberlauf-Ausnahmen sehr. – Sefe

+0

Es gibt keine zusätzlichen Informationen in den Error-Details. Ich habe das OP – Zoba

+1

aktualisiert, es scheint, das System stürzt so tief, dass es Ihnen den Stapel nicht geben kann. Wenn das System für eine Weile pausiert, bis es abstürzt, können Sie den Debugger anhalten und den Aufruf-Stack überprüfen. Das könnte dir einen Hinweis geben, was passiert. – Sefe

Antwort

0

Ich habe den "obj" Ordner meiner Lösung gelöscht und das Projekt neu aufgebaut und alles funktioniert wieder wie vorgesehen.

Verwandte Themen