2011-03-18 93 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; 
     }