2010-09-20 3 views
1

J'utilise EF4 et MVC 2.EF4 retour nouvel identifiant unique de procédure stockée

Je l'insertion d'un nouvel enregistrement à la base de données, et je besoin pour retourner la nouvelle valeur d'identité.

Ma procédure stockée se termine comme ceci:

SELECT SCOPE_IDENTITY() AS NewApplicationID; 

Voici ma méthode d'action:

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

Voici ma méthode de InsertApplication dans ma classe référentiel:

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

J'ai besoin pour renvoyer la valeur du nouvel ID.

J'espère que quelqu'un peut vous aider.

Merci.

Répondre

1

J'ai réussi à résoudre ce problème. Lorsque j'ai ajouté ma procédure stockée, j'ai mappé NewApplicationID à la propriété ApplicationID. Ainsi, après l'insertion de l'enregistrement, il définit la propriété ApplicationID sur la valeur renvoyée par SCOPE_IDENTITY().

Questions connexes