Catch DB constraint errors in EF

This commit is contained in:
2023-03-21 22:05:25 +01:00
parent c521bf5ffa
commit 30a97111cb

View File

@ -340,13 +340,13 @@ namespace Elwig.Windows {
if (ContactPostInput.IsChecked ?? false) m.DefaultContact = "post";
if (ContactEmailInput.IsChecked ?? false) m.DefaultContact = "email";
try {
EntityEntry<Member>? tr = null;
try {
if (IsEditing) {
tr = Context.Update(m);
} else if (IsCreating) {
m.MgNr = newMgNr;
await Context.AddAsync(m);
tr = (await Context.AddAsync(m));
}
await Context.SaveChangesAsync();
@ -354,6 +354,7 @@ namespace Elwig.Windows {
await Context.Database.ExecuteSqlAsync($"UPDATE member SET mgnr = {newMgNr} WHERE mgnr = {m.MgNr}");
}
} catch (Exception exc) {
if (tr != null) await tr.ReloadAsync();
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
MessageBox.Show(str, "Mitglied aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);