So vermeiden Sie System.Data.Entity.Infrastructure.DbUpdateException

Ich habe dieses DbContext-Objekt, das besteht aus -

- Employee
- CompanyAddress  (PK: AddressFirstLine, City)
Note: one Employee can have many CompanyAddress

Datensätze werden der Tabelle CompanyAddress hinzugefügtnur wenn In der Tabelle CompanyAddress ist eine Adresse nicht vorhanden.
Wenn ich zwei DBContext-Objekte aus der Datenbank habe, sagen Sie Snapshot1, Snapshot2. Nehmen wir an, dass die Tabelle CompanyAddress keine Datensätze enthielt, als beide Snapshots erstellt wurden. Wenn Änderungen an Snapshot1 vorgenommen und gespeichert wurden, werden Datensätze in die Tabelle CompanyAddress geschrieben.
Wenn Änderungen an Snapshot2 vorgenommen und mit gespeichert wurden

mydataContext.SaveChanges();

Ausnahme tritt auf:

System.Data.Entity.Infrastructure.DbUpdateException: An error occurred while updating the entries
System.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint 'PK_CompanyAddress'. Cannot insert duplicate key in object 'dbo.CompanyAddress'

Es scheint, dass das Speichern von Snapshot1 Snapshot2 schmutzig gemacht hat, weil beide das hatten, als sie zurück in die Datenbank gespeichert wurdengleich CompanyAddress-Datensätze.

Welche anderen Aufrufe / Einstellungen kann ich am dbContext-Objekt vornehmen, um diesen Fehler zu vermeiden?

Danke!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage