Heim >Backend-Entwicklung >C++ >Wie rufe ich die von der Datenbank generierte ID nach dem Einfügen einer Entität mit Entity Framework ab?

Wie rufe ich die von der Datenbank generierte ID nach dem Einfügen einer Entität mit Entity Framework ab?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-21 11:07:10308Durchsuche

How to Retrieve the Database-Generated ID After Inserting an Entity with Entity Framework?

Verwenden Sie Entity Framework, um die Identität der eingefügten Entität abzurufen

Entity Framework bietet eine praktische Möglichkeit, Entitäten in die Datenbank einzufügen. Allerdings kann es eine Herausforderung sein, die von der Datenbank zugewiesene ID der eingefügten Entität zu erhalten. Dieser Artikel befasst sich mit diesem Problem, indem er zwei Ansätze untersucht.

Methode 1: Zugeordnete Entitäts-ID verwenden

Dieser Artikel beginnt mit einer Lösung auf der Entity Framework-Website, bei der die zugewiesene ID vom Entitätsobjekt selbst abgerufen wird. Obwohl diese Methode die interne ID der Entität zurückgibt, stimmt sie möglicherweise nicht mit der ID der Datenbanktabelle überein, wenn der Datensatz gelöscht wird.

Methode 2: Datenbank-ID abrufen

Eine zuverlässigere Methode besteht darin, die von der Datenbank generierte ID abzurufen. Dies kann erreicht werden, indem einfach die Entität zum ObjectSet hinzugefügt und SaveChanges für den entsprechenden ObjectContext aufgerufen wird. Entity Framework legt die Id-Eigenschaft der Entität automatisch mit der von der Datenbank zugewiesenen Identität fest:

<code>using (var context = new MyContext())
{
  context.MyEntities.Add(myNewObject);
  context.SaveChanges();

  int id = myNewObject.Id; // 数据库标识可用
}</code>

Entity Framework führt nach jedem INSERT eine SELECT SCOPE_IDENTITY()-Abfrage aus, um die generierte ID abzurufen und so einen genauen ID-Abruf sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie rufe ich die von der Datenbank generierte ID nach dem Einfügen einer Entität mit Entity Framework ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn