2011-03-18 95 views
9

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

回答

13
  1. 标识将在Object调用dc.SaveChanges()之后;
  2. 另一种使用Guid或其他可以自己生成的id的方法。
3

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

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

1

我想象你正试图在这里找出一个外键的概念。你有没有考虑过使用Associations让你不必为此追踪ID?

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; 
     }