私のテーブルに履歴を保存したい。エンティティフレームワークを使用したデータベースの履歴
私はテーブルEmployee
を持っています。 Employee
が変更された場合
Employee
{
[Id],
[name],
[phone],
[isActive],
[createdDate],
[closedDate](default '23:59:59 9999-12-31'),
[DepartmentId] References Department(id)
}
、私は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
の場合はどうすればよいですか。
P.S.私はセルフトラッキングエンティティを使用します。
あなたのコードで何が問題になっていますか? –