如何在linq EF中获取最后一个插入的id

时间:2011-03-18 09:40:25

标签: c# entity-framework

我通过“AddObject(Object)”方法插入到数据库中,我想获取最后一个插入的id,这样我就可以插入到最后创建的id的另一个表中。我该怎么做呢?这是最好的方法吗?还是有更好的方法?

4 个答案:

答案 0 :(得分:13)

  1. 您可以在调用dc.SaveChanges()后在Object中使用ID。
  2. 另一种方式是使用Guid或其他可以自己生成的ID。

答案 1 :(得分:5)

请参阅以下代码示例:

 public virtual int CreateNewEmployee(Employee newEmployee)
        {
            if (newEmployee.EntityState == EntityState.Detached)
                _DatabaseContext.Employees.Attach(newEmployee);

            _DatabaseContext.ObjectStateManager.ChangeObjectState(newEmployee, EntityState.Added);

            int numberOfAffectedRows = _DatabaseContext.SaveChanges();

            return newEmployee.EmployeeId;
        }

答案 2 :(得分:3)

使用AddObject,然后保存更改时,Object将为其分配新的Id。

所以你应该能够看到包含新ID的Object.Id

答案 3 :(得分:1)

我想你正试图在这里找出一个外键概念。您是否考虑使用Associations使您无需为此目的跟踪ID?