带ef的域模型不正确

时间:2018-07-08 10:47:32

标签: entity-framework model entity-relationship anti-patterns

在尝试对现实生活进行建模时,我对实体框架有一些问题 问题。 我有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; }
        }

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

如何使模型保持真实状态呢?

1 个答案:

答案 0 :(得分:0)

好吧,您可能想知道一个人分配给他们的任务,以及他们分配给其他人的任务。如果您不想同时使用这两个Navigation属性,则在EF中不需要它们。但是您要做需要告诉EF导航属性适用于哪种关系。 EG:

    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; }
    }