插入后在 Entity Framework 5 中获取记录 ID

Get Record ID in Entity Framework 5 after insert

我意识到这一定是一件相对简单的事情,但我没有得到我想要的 Google。

我需要获取我刚刚使用 Entity Framework 保存的记录的记录 ID。对于 SQL 个查询,我们使用了 "Select @@IDENTITY as 'Identity';"

如果有人能提供帮助,将不胜感激。

Entity Framework 的默认行为是在调用 SaveChanges 后立即在数据库中的实体上设置标识字段。

在以下示例代码中,在调用 SaveChanges 之前,我的员工的默认 ID 为 0。在 SaveChanges 之后,我的员工生成的 ID 为 1。

using (TestDbEntities context = new TestDbEntities())
{
    Employee e = new Employee ();
    e.FirstName = "John";
    e.LastName = "Doe";
    context.Employee.Add(e);
    context.SaveChanges();
    Console.WriteLine("Generated ID: {0}", e.ID);
    Console.ReadKey();
}