使用EF建模数据库,在数据库内部循环

时间:2015-02-13 16:13:18

标签: c# asp.net-mvc entity-framework

我在建模数据库时遇到问题。 我在mvc.net上使用EF 6

我有三张桌子。 ProjectPersonTask。 每个Person都有TaskProject

这些是我的课程:

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就不会使用该字段。

我对以下方法感兴趣:

  1. Person - 这将获得项目ID并返回与此项目相关的所有任务,或者是与没有人的项目相关的任务,或者是通过工作人员与项目相关的任务在这个项目中。
  2. GetTasksForProject(int id) - 这将返回与项目相关但与此项目中的任何人无关的任务
  3. GetTasksOnlyForProject - 这将返回与给定人员相关的任务
  4. 你有什么建议?我是EF和MVC.net的新手,但不是编程和sql。可能首先使数据库更容易(现在),但我想学习代码第一种方法。

    提前致谢,

0 个答案:

没有答案