EF4 возвращает новый уникальный идентификатор из хранимой процедуры - PullRequest
1 голос
/ 20 сентября 2010

Я использую EF4 и MVC 2.

Я вставляю новую запись в базу данных, и она мне нужна, чтобы вернуть новое значение идентификатора.

Моя хранимая процедура заканчивается следующим образом:

SELECT SCOPE_IDENTITY() AS NewApplicationID;

Вот мой метод действия:

public ActionResult CreateApplication(ApplicationViewModel applicationViewModel)
{
   if (ModelState.IsValid)
   {
      try
      {
         Mapper.CreateMap<ApplicationViewModel, Application>();
         var application = (Application)Mapper.Map(applicationViewModel, typeof(ApplicationViewModel), typeof(Application));

         var success = applicationRepository.InsertApplication(application);
      }
      catch (Exception ex)
      {
      }
   }

   return View("CreateApplication", applicationViewModel);
}

Вот мой метод InsertApplication в моем классе репозитория:

public int InsertApplication(Application application)
{
   db.Applications.AddObject(application);
   return db.SaveChanges();
}

Мне нужно вернуть значение нового идентификатора.

Я надеюсь, что кто-то может помочь.

Спасибо.

1 Ответ

1 голос
/ 20 сентября 2010

Мне удалось разобраться с этим. Когда я добавил свою хранимую процедуру, я сопоставил NewApplicationID со свойством ApplicationID. Поэтому после вставки записи она устанавливает для свойства ApplicationID значение, возвращаемое функцией SCOPE_IDENTITY ().

...