4 Stimmen

Fehler beim Einfügen von Daten mit LINQ to SQL

Wenn ich Daten mit folgendem Code einfüge, sehe ich die Ausnahme. Was soll ich tun?

Code:

Movie_List_DBDataContext Movie_list1 = neue Movie_List_DBDataContext();
Actor act = neue Actor();

act.Actor_Name = Acttxt.Text;

Movie_list1.Actors.InsertOnSubmit(act);
Movie_list1.SubmitChanges();

Ausnahme:

Verletzung der PRIMARY KEY Bedingung 'PK_Actors'. Kann keinen doppelten Schlüssel in das Objekt 'dbo.Actors' einfügen.

Meine Tabelle hat 2 Spalten; ID und Name, und ID ist der Primärschlüssel.

6voto

bruno conde Punkte 47059

In Ihrem .dbml-Designer stellen Sie sicher, dass das Feld ID als "automatisch generierter Wert" markiert ist. Sie finden dies in der Eigenschaftsansicht des Feldes.

Normalerweise wird dies entsprechend der Tabelle in der Datenbank initialisiert, sodass, wenn die ID in der Datenbank als automatisch generierter Wert festgelegt ist, der Designer den "Auto Generated Value" automatisch auf true setzt.

Sie können das gewünschte Feld auch im Code als "Auto Generated Value" markieren.

Suchen Sie die ID-Eigenschaft im generierten Code hinter dem und setzen Sie den Wert im Column-Attribut: IsDbGenerated=true

3voto

Espo Punkte 40386

Haben Sie "ID" in der Tabelle "Actor" als Identitätsfeld festgelegt? Wenn nicht, zeigt Ihnen eine schnelle Suche bei Google oder Stack Overflow, wie es geht. Stellen Sie außerdem sicher, dass die Autogenerate-Eigenschaft in Ihrer Designer-Datei für die ID-Spalte festgelegt ist.

1voto

tvanfosson Punkte 506878

Es sieht aus, als ob Sie erwarten, dass die ID automatisch generiert wird. Wenn das der Fall ist, stellen Sie sicher, dass die Eigenschaft im Designer entsprechend eingestellt ist. Der einfachste Weg, dies zu tun, ist, nachdem die Spalte korrekt konfiguriert ist, die Tabelle im Designer zu löschen und sie dann erneut hinzuzufügen. Es sollte die Identitäts-Eigenschaft auf dem Feld erfassen und konfigurieren, so dass sie nicht versucht, sie einzufügen, wenn der Datensatz hinzugefügt wird. Natürlich müssen Sie, wenn Sie die Identitäts-Eigenschaft in der Tabelle nicht gesetzt haben, dies zuerst tun oder einen Weg finden, um die ID zu generieren und ihr einen eindeutigen Wert zuzuweisen, bevor Sie den Einfügevorgang durchführen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X