2009-05-02 17 views
2

Kann jemand helfen? Ich habe das Entity Framework benutzen und seine gut geht :-)Identity-Spalte eines neuen Datensatzes in Entity Framework erhalten?

aber ich habe soeben einen neuen Datensatz eine Entität-Klasse wie so

this._entities.AddToUsers (Benutzer);

Das AddTo wird automatisch erstellt .. und Benutzer ist meine Tabelle ... Alles großartig, aber wie gebe ich die Identitätsspalte zurück?

Das klingt wie genau das, was ich brauche stattdessen eine gespeicherte Prozedur aufzurufen, habe ich eine gespeicherte Prozedur, bevor -

ich ich nehme weiterhin die gespeicherte Prozedur verwenden, aber das bedeutet, ich muss meine Benutzer Entitätsklasse konvertieren zu Sql-Parametern.

Ich verwende EFExtensions.

Und einmal hinzugefügt muss ich SaveChanges oder etwas aufrufen?

Irgendwelche Ideen ??

Dank

Antwort

4

Ja, AddToUsers fügt nur das Objekt in die Einheit Kontext-Speicher - es auf der Festplatte noch einfach nicht gespeichert wird, und somit Ihr neuer Identitätswert noch nicht zugeordnet worden ist.

Nur aufrufen .SaveChanges() wird tatsächlich die Änderungen in die Datenbank schreiben - und dann und nur dann wird der Identitätswert (wenn Ihr Feld vom Typ INT IDENTITY ist) generiert.

Marc

+0

danke .. ja das hat funktioniert! Sobald ich SaveChanges mache, sehe ich den Wert ist –

+0

Wie hast du die ID zurück in Code bekommen. Zum Beispiel Return this._entities.AddToUsers (Benutzer) ;? – suggy1982

+0

@ suggy1982: Nach dem Aufruf von '.SaveChanges()' wird die Identitätsspalte Ihres Objekts automatisch gefüllt - Sie müssen nichts mehr tun - lesen Sie einfach die ID-Spalte aus –

Verwandte Themen