简体   繁体   中英

how to get last inserted id in linq EF

I am inserting into the database through the "AddObject(Object)" method and I wanted to get the last inserted id of that so i could insert into another table with that last created id. How would I go about doing that? Is the best way of doing this? or is there better way?

  1. Id will be available in Object after you call dc.SaveChanges();
  2. Another way it's use Guid or some else id that you can generate yourself.

See the code sample as below:

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

When using the AddObject, and then saving the changes, the Object will have the new Id assigned to it.

So you should be able to see Object.Id containing the new ID

I'm imagining you are trying to work out a foreign key concept here. Have you considered using Associations which free you from having to track ids for this purpose?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM