ef 的域模型不正确

Incorrect Domain model with ef

我在尝试模拟真实生活时遇到了 Entity Framework 的小问题 问题。 我有 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; }
    }

但如果我想使用 Entity framework,它迫使我像这样改变我的模型,它与现实生活不同!!

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

(我实际上只有一个一对多关系)

让我的模型与现实生活中的模型保持一致的解决方案是什么?

好吧,您可能想知道一个人分配给他们的任务是什么,以及他们分配给其他人的任务是什么。如果您不想要这两个导航属性,则在 EF 中不需要它们。但是您 do 需要告诉 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; }
    }