LINQ To SQL-exception mit Attach(): Cannot add ein Unternehmen, das mit einem Schlüssel wird bereits verwendet

Betrachten Sie diese typischen disconnected Szenario:

  • laden ein Customer-Objekt von SQL Server mithilfe von LINQ To SQL
  • Benutzer änderungen der Entität und der präsentationsebene sendet wieder die Einheit geändert werden.
  • die Daten-Schicht, mit L2S, müssen senden Sie die änderungen an SQL Server,

Betrachten Sie diese LINQ To SQL-Abfrage, deren Absicht ist, um eine Entität Customer.

Cust custOrig = db.Custs.SingleOrDefault(o => o.ID == c.ID); //get the original
db.Custs.Attach(c, custOrig); //we don't have a TimeStamp=True property
db.SubmitChanges();                

DuplicateKeyException: Cannot add an entity with a key that is already in use.

LINQ To SQL-exception mit Attach(): Cannot add ein Unternehmen, das mit einem Schlüssel wird bereits verwendet

Frage

  • Wie vermeiden Sie diese Ausnahme?
  • Was ist die beste Strategie für das aktualisieren einer Entität, die KEINE haben/wollen/brauchen eine timestamp-Eigenschaft?

Sub-Optimale Workarounds

  • manuell einstellen, jede Eigenschaft, die in der Aktualisierung der Kunden an die orig Kunden.
  • spin-up einen anderen DataContext
InformationsquelleAutor p.campbell | 2009-11-18
Schreibe einen Kommentar