Entity framework 使用ef的域模型不正确

Entity framework 使用ef的域模型不正确,entity-framework,model,entity-relationship,anti-patterns,Entity Framework,Model,Entity Relationship,Anti Patterns,在尝试对现实生活建模时,我对实体框架有一个小问题 问题 我有两个这样的实体: public class Person { public int Id { get; set; } public ICollection<Task> Tasks{ get; set; } } public class Task { public int Id { get; set; } public Person

在尝试对现实生活建模时,我对实体框架有一个小问题 问题 我有两个这样的实体:

 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; }
    }
公共类人物
{
公共int Id{get;set;}
公共ICollection任务{get;set;}
}
公开课任务
{
公共int Id{get;set;}
公众人物受让人{get;set;}
公共人物赋值器{get;set;}
}
但如果我想使用实体框架,它会迫使我像这样改变我的模型,这与现实生活不同

 public class Person
        {
            public int Id { get; set; }
            public ICollection<Task> AssigneesTasks{ get; set; }
            public ICollection<Task> AssignerTasks{ get; set; }
        }
公共类人物
{
公共int Id{get;set;}
公共ICollection AssigneesTasks{get;set;}
公共ICollection赋值器任务{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; }
    }
公共类人物
{
公共int Id{get;set;}
[反向财产(“受让人”)]
公共ICollection任务{get;set;}
}
公开课任务
{
公共int Id{get;set;}
公众人物受让人{get;set;}
公共人物赋值器{get;set;}
}

为什么您认为单一的一对多关系是正确的模型?如何解释两个一对多关系?