我想在我的表中存儲歷史記錄。使用實體框架的數據庫中的歷史記錄
我有表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
更改對象。
P.S.我使用自我跟蹤實體。
你的代碼有什麼問題? –