2014-10-23 1 views
0

У меня есть MVC 4 приложения, VS 2010, Entity Framework 5, Sql 2008 R2, C#Как захватить вновь созданный ПК и вернуть страницу этого выбранного индекса

В моем контроллере, после того, как я добавить новую запись (который действительно является формой для добавления в раскрывающийся список), я хочу получить только что созданный идентификатор и передать его обратно в раскрывающийся список, чтобы страница теперь показывала вновь созданную запись (и все ее детали).

Я продолжаю читать информацию о SCOPE IDENTITY, но я не уверен, как реализовать и использовать его (если это возможно) с этой стороны. Любые предложения приветствуются.

public ActionResult Create(x y) 
    { 
     if (ModelState.IsValid) 
     { 

      db.x.Add(y); 
      db.SaveChangesNew(); 

      //select id from x where id = scope_identity();  ??? 
      // int ID = (int)db.ExecuteScalar();     ??? 
      // Select @@IDENTITY as newId;      ??? 
      // SELECT NewID = SCOPE_IDENTITY();     ??? 

     // ViewBag.ID = new SelectList(db.x, "ID", "Name", y); ??? 

      return View(); 


     } 

ответ

2

После SaveShanges() идентификатор добавляемого записи автоматически добавляется EF в объекте, который мы добавим, вы можете подтвердить отладки и просмотра:

db.x.Add(y); 
db.SaveChangesNew(); 

int InsertedRecordId = y.Id; 
+0

Спасибо. Не могу поверить, что это было так просто. Но как передать этот пакет в представление, содержащее выпадающий список? – New2This

+1

'db.x' принесут новую добавленную запись, а также –

+0

спасибо большое! Но как передать этот пакет в представление, содержащее выпадающий список? – New2This