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: "Das Programm" [8028] iisexpress.exe "wurde mit Code -2147023895 (0x800703e9) erstellt."
Der Stacktrace zeigt null. Was mache ich falsch und was kann ich verbessern?
Was ist der Stack-Trace Ihrer Ausnahme? Das hilft bei Stapelüberlauf-Ausnahmen sehr. – Sefe
Es gibt keine zusätzlichen Informationen in den Error-Details. Ich habe das OP – Zoba
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