Aktualisieren eines Datensatzes die Verwendung von Linq-to-SQL

Ich habe das oft getan und es hat funktioniert.

Jedes Beispiel, das ich gefunden habe, ist genau das, was ich habe..

Mache ich meine Abfrage...

var result = from u in tdc.tblUsers
             where u.UserID == userID
             select u;

und dann ändere ich die Werte, die ich möchte:

foreach (tblUsers u in result)
{
     //change values (and no im not changing the primary key or foreign keys)
}

dann reiche ich die änderungen

tdc.SubmitChanges();

Habe ich auch schon versucht, es auf diese Weise vor und bekam den gleichen Fehler

tblUsers result = (from u in tdc.tblUsers
                   where u.UserID == userID
                   select u).Single();
result.Address = address;
result.Phone = phone;
tdc.SubmitChanges();

Es wird immer nur abrufen 1 Datensatz mit dieser Abfrage, da UserID ist der Primärschlüssel.

Wenn Sie auf änderungen Einreichen, wirft Ausnahme, dass die Zeile wurde nicht gefunden oder wurde geändert. Ich bin die einzige person mit dieser, so gibt es keine anderen Konflikte mit Zugriff auf die db oder sperren. Warum würden Sie werfen den ChangeConflictException? Ich trat durch mit debugger und die Daten weiterhin den ganzen Weg durch den Prozess, einschließlich der änderungen, die ich versuche zu machen.

  • Sind Sie mit dem Entity Framework (und wenn ja, welche version)?
  • Auch ALLE deine Tabellen Primärschlüssel. Dies beinhaltet, die Sie gerade Bearbeiten, und jede Verzweigung Tabellen von fremden Schlüsseln.
  • Sie erhalten diese Fehlermeldung möglicherweise, weil eines Ihrer Felder hat etwas anderes in der Linq To SQL designer und in die aktuelle Datenbank.
  • .NET Framework 4 und ja, alle Tabellen haben Primärschlüssel und der richtige Fremdschlüssel. Diese Abfrage ist nur noch nach Tabelle 1 und die Tabelle nicht über alle Fremdschlüssel in es. Es ist einer meiner base-Tabellen.
  • Irgendeinem Grund Sie mit SubmitChanges statt SaveChanges? Auch, welche version des Entity - framework verwenden Sie?
InformationsquelleAutor Andy Link | 2013-05-04
Schreibe einen Kommentar