将对象属性添加到db后访问它

时间:2014-12-16 13:01:11

标签: c# mysql .net asp.net-mvc entity-framework

我有一个创建方法,我在数据库中添加一个新的Employee对象,添加员工之后我想进入编辑页面,以便能够输入关于员工的更多详细信息。

Edit操作方法采用1个参数EmployeeID,但是一旦将对象添加到Employee表,此EmployeeID将由数据库动态分配。如何在同一操作方法中的_db.SaveChanges()之后访问新添加的员工的ID?

这是我的方法的一部分:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Employee Employee) {
 _db.Employees.Add(Employee);
 _db.SaveChanges();
 //access the employee and gets its id???
 //var id = id???
 return RedirectToAction("EditEmployeeViewModel", new { id = id});
}

2 个答案:

答案 0 :(得分:3)

你可以使用它:

Employee.Id

Employee对象与您对db所做的更改同步。因此,当您将此对象添加到Employees并调用SaveChanges时,此对象将保存到db,并且将更新其状态Id 1 {} Employee

具体而言,正如其所述here

  

默认情况下,实体框架跟随每个INSERT和SELECT   使用自动生成的ID时SCOPE_IDENTITY()。

答案 1 :(得分:2)

尝试以下代码并访问最新的当前员工ID,例如Employee.Id: -

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Employee Employee) {
 _db.Employees.Add(Employee);
 _db.SaveChanges();

 var id = Employee.Id;
 return RedirectToAction("EditEmployeeViewModel", new { id = id});
}