c# - 添加到数据库后访问对象属性

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

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

编辑操作方法采用 1 个参数,即 EmployeeID,但是,一旦将对象添加到员工表中,该 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});
}

最佳答案

你可以使用这个:

Employee.Id

Employee 对象与您对 db 所做的更改同步。因此,当您将此对象添加到Employees并调用SaveChanges时,该对象将被保存到db并且其状态将被更新,具有 EmployeeId

具体来说,如所述here :

Entity framework by default follows each INSERT with SELECT SCOPE_IDENTITY() when autogenerated Ids are used.

关于c# - 添加到数据库后访问对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505261/

相关文章:

c# - 带种子的 CreateMany 有什么作用?

php - 如何使PHP中的数组打印唯一?

mysql更新列然后选择更新的值

c# - 如何在c#中等待事件被处理

c# - NHibernate 转换问题(怀疑原因是不正确的映射)

c# - 多个提交按钮 asp.net mvc 5 不工作

c# - 将现有文件夹链接到 Visual C# Express 中的解决方案

c# - 为什么多个 try..catch block 在 C# 2.0 中的同一方法中无法正常工作?

mysql - 如何将我的 MSSQL 数据库同步到 MySQL?

.net - 关闭 AutoSize 时保持大小