我有一个创建方法,我在数据库中添加一个新的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});
}
答案 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});
}