我在建模数据库时遇到问题。 我在mvc.net上使用EF 6
我有三张桌子。 Project
,Person
,Task
。
每个Person
都有Task
和Project
。
这些是我的课程:
public class Project
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Person> Persons { get; set; }
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int ProjectId { get; set; }
public virtual Project Project { get; set; }
public virtual ICollection<TestTask> Tasks { get; set; }
}
public class TestTask
{
public int Id { get; set; }
public string Name { get; set; }
public string Content { get; set; }
public int PersonId { get; set; }
public virtual Person Person { get; set; }
}
当我确定每个项目都需要自己的任务时,问题就开始了,反过来说,我希望每个任务都有一个projectId,所以我可以获得项目的所有任务(有和没有相关的任务{ {1}})。
如果我在项目中添加任务列表并在任务中添加projectId,我会从实体框架中收到错误。如果我在任务类中只有一个projectId(项目中没有任何导航属性),那么ef就不会使用该字段。
我对以下方法感兴趣:
Person
- 这将获得项目ID并返回与此项目相关的所有任务,或者是与没有人的项目相关的任务,或者是通过工作人员与项目相关的任务在这个项目中。GetTasksForProject(int id)
- 这将返回与项目相关但与此项目中的任何人无关的任务GetTasksOnlyForProject
- 这将返回与给定人员相关的任务你有什么建议?我是EF和MVC.net的新手,但不是编程和sql。可能首先使数据库更容易(现在),但我想学习代码第一种方法。
提前致谢,