ASP.NET MVC Erhalte die ID des zuletzt hinzugefügten Datensatzes

8

Ich verwende ein MVC-Webformular, um einen Datensatz in eine Datenbank mit mehreren Untersätzen einzufügen. In meinem Code-Behind erzeuge ich zuerst einen neuen Hauptsatz mit Hilfe von dataRepository.Add (xx). Jetzt muss ich 5 Untersätze hinzufügen, die die ID des neu erstellten Datensatzes benötigen. Wie kann ich das abrufen?

    
Erwin1441 08.09.2010, 12:44
quelle

3 Antworten

23

Wenn xx Ihr Modell ist und sein Primärschlüssel Id ist, können Sie die ID Ihres eingefügten Datensatzes wie folgt erhalten:

%Vor%     
Frank van Eykelen 14.01.2011, 11:02
quelle
2

Wenn Sie ein ORM wie Entity Framework verwenden, sollten Sie in der Lage sein, den Datensatz und die zugehörigen Datensätze zu erstellen, sie zu verknüpfen, indem Sie die zugehörigen Datensätze in eine Auflistung des Hauptobjekts einfügen oder sie irgendwie festlegen und dann die Speichermethode aufrufen über den Kontext. Dies wird die gesamte Verbindung mit IDs etc. für Sie tun.

Wie machen Sie Datenzugriff?

    
WestDiscGolf 08.09.2010 13:00
quelle
1

Sie sollten wahrscheinlich alle 5 Datensätze plus den Hauptdatensatz bis hin zu Ihrem Datenlayer übermitteln und dabei eine Überprüfung auf dem Weg in Ihrer Business-Schicht durchführen. Speichern Sie dann den Hauptdatensatz, geben Sie die ID zurück, legen Sie die übergeordnete ID für die Subdatensätze fest und speichern Sie sie, abhängig von der Implementierung Ihres DL. Machen Sie alles innerhalb einer einzigen Transaktion und Sie sollten in Ordnung sein.

Geben Sie weitere Informationen zu Ihrer Datenzugriffsebene an.

Wenn Sie MS SQL Server verwenden, verwenden Sie die Scope_Identity () in Ihrer gespeicherten Prozedur, um den letzten Identitätswert in eine Identitätsspalte einzufügen. Sehen Sie sich diesen MSDN-Artikel

an

Wenn Sie NHibernate verwenden, fügen Sie sie innerhalb derselben Sitzung hinzu, und NHibernate erstellt das SQL, das für das Einfügen der Datensätze mit den richtigen IDs verantwortlich ist.

    
Daniel Dyson 08.09.2010 12:52
quelle

Tags und Links