Wie kann ich den Primärschlüsselwert erhalten, wenn ich einen neuen Datensatz einfüge?

7

Ich verwende die LINQ-to-SQL-Klasse. Es hat eine Methode object.InsertOnSubmit (). Aber es gibt void zurück, so kann ich Primärschlüsselwerte nach dem Einfügen eines Datensatzes erhalten.

Ich möchte den Primärschlüsselwert des zuletzt eingefügten Datensatzes.

    
harshalb 25.04.2009, 06:09
quelle

6 Antworten

8

ja (Angenommen, es handelt sich um ein Identitätsfeld).

Durch den Aufruf von InsertOnSubmit wird die Einfügung nicht an die db gesendet. Sie müssen SubmitChanges aufrufen, damit Änderungen in der aktuellen Datenkontextinstanz an die Datenbank gesendet werden.

Nachdem Sie SubmitChanges aufgerufen haben, können Sie auf die Werte der Instanz zugreifen, die Sie beim Aufrufen von InsertOnSubmit verwendet haben. Linq to sql füllt diese Werte für Sie auf, wenn Sie die Einfügung durchführen (was während SubmitChanges auftritt)

Überprüfen Sie dieses Beispiel: Ссылка

    
eglasius 25.04.2009, 06:45
quelle
7

Kurz gesagt, müssen Sie nicht. Das Objekt selbst wird aktualisiert.

%Vor%     
aleemb 25.04.2009 06:49
quelle
4

Hier ist ein Beispiel, wie das funktioniert:

%Vor%     
Jose Basilio 25.04.2009 06:54
quelle
1

Wenn das Modell richtig eingerichtet ist, sollte der PK automatisch auf das betroffene Objekt (das gerade eingefügte Objekt) automatisch gesetzt werden.

HTH.

Seth

    
sethwebster 25.04.2009 06:14
quelle
1

Sobald Sie den InputOnSubmit () aufgerufen haben, wird der Primärschlüsselwert auf das entsprechende Feld in Ihrem Tabellenobjekt gesetzt. Sie können einfach auf diese Eigenschaft zugreifen, um den Primärschlüssel zu erhalten.

    
Kapil 25.04.2009 06:20
quelle
0

Rufen Sie nach dem Einfügen des Datensatzes SubmitChanges () für Ihren Datenkontext auf? Das Änderungsset wird erst ausgewertet, wenn Sie dies tun.

    
Dave L 25.04.2009 06:16
quelle

Tags und Links