Entity Framework 挿入後のエンティティ ID の取得
Entity Framework を使用してデータベースに新しいエンティティを挿入すると、多くの場合、後続の操作でデータベースによって割り当てられた ID が必要になります。 この記事では、この ID を効率的に取得する方法について説明します。
Entity Framework は ID プロパティを提供しますが、これは最初は実際のデータベース ID ではなく、一時的な識別子を保持します。 データベースで生成された ID を取得するには、少し異なる方法が必要です。
解決策
Entity Framework は、自動生成されたキー (SQL Server の IDENTITY など) の ID 取得をエレガントに処理します。 エンティティを関連する ObjectSet に追加し、ObjectContext で SaveChanges
を呼び出すだけです。エンティティの ID プロパティは、データベースによって割り当てられた値で更新されます。
<code class="language-csharp">using (var context = new MyContext()) { context.MyEntities.Add(myNewObject); context.SaveChanges(); int id = myNewObject.Id; // id now contains the database-generated ID }</code>
自動生成キーが使用されている場合、Entity Framework は内部的に SCOPE_IDENTITY()
(またはデータベースによっては同様の関数) を使用して、新しく挿入されたエンティティの ID を取得します。 これにより、追加のコーディングを行わなくても正しい ID を取得できます。
以上がEntity Framework で挿入後にデータベースによって割り当てられたエンティティ ID を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。