使用 ef 的域模型不正确



我在尝试对现实生活进行建模时对实体框架有一点问题 问题。 我有 2 个这样的实体:

public class Person
{
public int Id { get; set; }
public ICollection<Task> Tasks{ get; set; }
}

public class Task
{
public int Id { get; set; }
public Person Assignee{ get; set; }
public Person Assigner{ get; set; }
}

但是如果我想使用实体框架,它会迫使我像这样更改我的模型,因为它与现实生活不同!

public class Person
{
public int Id { get; set; }
public ICollection<Task> AssigneesTasks{ get; set; }
public ICollection<Task> AssignerTasks{ get; set; }
}

(事实上我只有单对多关系(

根据现实生活中的模型保持模型的解决方案是什么?

你可能想知道一个人分配给了什么任务,以及他们分配给其他人的任务。如果不需要这两个导航属性,则在 EF 中不需要它们。但你确实需要告诉 EF 导航属性适用于哪个关系。 例如:

public class Person
{
public int Id { get; set; }
[InverseProperty("Assignee")]
public ICollection<Task> Tasks { get; set; }
}

public class Task
{
public int Id { get; set; }
public Person Assignee { get; set; }
public Person Assigner { get; set; }
}

最新更新