我正在使用ASP.net MVC,我已经简化但是制作了以下模型
public class Employee
{
public int Id { get; set; }
public string EmpName { get; set; }
}
public class Customer
{
public int Id { get; set; }
public string CusName { get; set; }
}
public class Task
{
public int Id { get; set; }
public DateTime StartDate{ get; set; }
public DateTime? EndDate{ get; set; }
}
员工可以有很多任务。 任务可以有很多员工(但只能在任何时候) 客户可以拥有多项任务
我正在努力的是能够在任务开始或结束时记录,但是当Employee和Task之间的关系开始和结束并且新的Employee开始时。我知道我需要一个历史实体,但我想不出我会怎么记录这个。顺便说一下,如果任务从客户的角度结束,那么员工和任务之间的关系就会自动结束。
一如既往地谢谢你。如果任何人有关于EF的好书或视频教程的任何指针都可以处理这种关系,那将非常感激。
答案 0 :(得分:1)
我的方法是将CustomerId和EmployeeId添加到Task。然后我会创建一个存储库并添加一个save方法。或者,您可以在上下文中override the SaveChanges method,但我不建议这样做。无论哪种方式,您的save方法只需要检查实体是否已存在于数据库中,如果存在,则CustomerId或EmployeeId是否已从当前存在更改。如果它已更改,您可以向历史记录实体添加新条目或执行您需要的任何操作。只需确保将更改保存到任务中。