EF4从存储过程返回新的唯一标识符

时间:2010-09-20 11:21:12

标签: entity-framework-4 entity

我正在使用EF4和MVC 2.

我正在向数据库插入一条新记录,我需要它来返回新的ID值。

我的存储过程如下所示:

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

我需要返回新ID的值。

我希望有人可以提供帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

我设法解决了这个问题。当我添加我的存储过程时,我将NewApplicationID映射到ApplicationID属性。因此,在插入记录后,它将ApplicationID属性设置为SCOPE_IDENTITY()返回的值。

相关问题