как получить последний вставленный id в linq EF

я вставляю в базу данных через метод" AddObject(Object)", и я хотел получить последний вставленный идентификатор этого, чтобы я мог вставить в другую таблицу с этим последним созданным идентификатором. Как мне это сделать? Это лучший способ сделать это? или есть лучший способ?

4 ответов


  1. Id будет доступен в Object после вызова dc.SaveChanges();
  2. другой способ использовать Guid или какой-либо другой идентификатор, который вы можете создать самостоятельно.

посмотреть пример кода, как показано ниже:

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

при использовании AddObject, а затем сохранении изменений, объект будет иметь новый идентификатор, назначенный ему.

таким образом, Вы должны иметь возможность видеть объект.Id, содержащий новый ID


Я представляю, что вы пытаетесь разработать концепцию внешнего ключа здесь. Вы рассматривали возможность использования Associations, который освободит вас от необходимости отслеживать идентификаторы для этой цели?