我有一个类:
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Employee Manager { get; set; }
public virtual Department Deptartment { get; set; }
}
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Employee> Employees { get; set; }
}
在控制器中创建新员工的代码:此代码在 DB 中插入两条记录。
[HttpPost]
public ActionResult Create(Employee employee)
{
if (ModelState.IsValid)
{
db.Employees.Add(employee);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(employee);
}
我正在提供用于创建新员工的 MVC4 视图,其中用户输入员工姓名和 ManagerId。当我获得发布的 Employee 对象时,它具有由用户输入的 ID 的 Manager 对象。但是,对于该对象,其他详细信息(例如名称)为空,其中具有该 userId 的员工存在于数据库中。在数据库中插入员工记录时,应用程序正在插入两条记录(一条是用户输入的员工姓名,另一条是用户为该员工提供的经理 ID。对于发送,名称保存为空)。为什么要插入两条记录?