2014-01-17 6 views
2

У меня есть вставка, работающая отлично, но вам нужно получить значение строки, которую она только что вставила. Не знаю, как я могу это сделать. Пробовал кое-что ... не работал. Вот мой ВСТАВИТЬ:Как получить идентификатор строки, вставленной в C#

//method to insert data 
private void insertNewProject() 
{ 
    using (dbPSREntities5 context = new dbPSREntities5()) 
    { 
     //Create a new instance of the tbProject object 
     tbProject proj = new tbProject { 
      //Add new values to each fields 
      ProjectContactInfo = txtContactPhone.Text, 
      refDepartmentID = Convert.ToInt32(ddlDepartments.SelectedValue) 
     }; 

     context.tbProjects.AddObject(proj); 

     context.SaveChanges(); 

     id = (int)command.ExecuteScalar; <--- something like this but this doesn't work. 
    } 
} 

ответ

5

Он будет автоматически обновляться на Вашем объекте, как только context.SaveChanges(); называется.

context.tbProjects.AddObject(proj); 

    context.SaveChanges(); 

    id = proj.Id; 
4

Как только вы нажмете context.SaveChanges(), он заполнит идентификатор в объекте.

Предполагая, что ваша колонка AutoNumber называется ID (если нет, то просто использовать любой столбец ID у вас есть)

id = proj.ID; 

Вы не должны ExecuteScalar или что-нибудь подобное, как EF делает это для вас.

Смежные вопросы