我想在我的表中存储历史记录。
我有桌子Employee
。
Employee
{
[Id],
[name],
[phone],
[isActive],
[createdDate],
[closedDate](default '23:59:59 9999-12-31'),
[DepartmentId] References Department(id)
}
更改时Employee
,我检索原始值Id
并执行isActive=False, closedDate=DateTime.Now
,然后将修改后的值保存为Employee
带有修改后的原始值的新值。
void UpdateEmployee(Employee employee)
{
ContextDB db=new ContextDB();
var employeeToUpdate=db.Employees.Find(it=>it.Id==employee.Id);
employeeToUpdate.isActive=false;
employeeToUpdate.closeDate=DateTime.Now;
var newEmployee=new Employee
{
Name=employee.Name,
Phone=employee.Phone,
....
}
db.Employees.AddObject(newEmployee);
// How I can do this with EF
db.Employees.Modify(employeeToUpdate);
db.SaveChanges();
}
我怎样才能做到这一点?还有一个问题,如果我引用了另一个表Department
并且还想在这个表中存储历史记录,我需要做什么。Department
如果对象发生变化我该怎么办Employee
。
PS我使用自我跟踪实体。