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; }
}
我在尝试模拟真实生活时遇到了 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; }
}