【问题标题】:access object properties after it was added to db将对象添加到数据库后访问对象属性
【发布时间】:2015-02-14 19:13:59
【问题描述】:

我有一个 create 方法,我在数据库中添加一个新的员工对象,添加员工后,我想进入编辑页面,如果我愿意,可以输入有关员工的更多详细信息。

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});
}

【问题讨论】:

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


    【解决方案1】:

    你可以用这个:

    Employee.Id
    

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

    具体来说,正如它所说的here

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

    【讨论】:

    • @AbdulAhmad 你欢迎老兄。我很高兴能帮上忙。
    【解决方案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});
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-21
      • 2021-03-22
      • 2015-11-15
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多