ASP.NET の Entity Framework に問題があります。データベースにオブジェクトを追加するたびに Id 値を取得したいのですが、どうすればいいでしょうか?
によるとエンティティフレームワーク解決策は次のとおりです。
using (var context = new EntityContext())
{
var customer = new Customer()
{
Name = "John"
};
context.Customers.Add(customer);
context.SaveChanges();
int id = customer.CustomerID;
}
これはデータベース テーブルの ID を取得するのではなく、エンティティに割り当てられた ID を取得します。テーブルからレコードを削除すると、シード ID はエンティティ ID と一致しなくなります。
ベストアンサー1
とても簡単です。DB で生成された ID (MS SQL など) を使用している場合は、関連するにIDENTITY
エンティティを追加するだけで、自動的に入力されます。ObjectSet
SaveChanges
ObjectContext
Id
using (var context = new MyContext())
{
context.MyEntities.Add(myNewObject);
context.SaveChanges();
int id = myNewObject.Id; // Yes it's here
}
エンティティ フレームワークは、自動生成された が使用される場合、デフォルトで各INSERT
に従います。SELECT SCOPE_IDENTITY()
Id