【问题标题】:Incorrect Domain model with ef带有 ef 的域模型不正确
【发布时间】:2018-12-16 06:59:08
【问题描述】:

在尝试对现实生活进行建模时,我在使用 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; }
    }

但是如果我想使用实体框架,它迫使我改变我的模型,它与现实生活不同!

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

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

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

【问题讨论】:

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

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


【解决方案1】:

您可能想知道一个人分配给他们的任务,以及他们分配给其他人的任务。如果您不想要这两个导航属性,则在 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; }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    相关资源
    最近更新 更多