как получить последний вставленный идентификатор в linq EF - PullRequest
9 голосов
/ 18 марта 2011

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

Ответы [ 4 ]

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

См. Пример кода, как показано ниже:

 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;
        }
3 голосов
/ 18 марта 2011

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

Таким образом, вы сможете увидеть Object.Id, содержащий новый идентификатор

1 голос
/ 18 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...