【发布时间】:2011-07-14 06:32:07
【问题描述】:
我想在我的表中存储历史记录。
我有桌子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 并且还希望在此表中存储历史记录,我需要做什么。如果在Employee 对象中更改Department,我该怎么办。
附:我使用自我跟踪实体。
【问题讨论】:
-
你的代码有什么问题?
标签: entity-framework self-tracking-entities