在对象中包含多个对象[实体框架]

时间:2016-04-22 10:39:45

标签: c# .net entity-framework linq

我试图检索ProjectCategories(子类别)列表和ProjectCategorie的类别,检索子列表。但我不知道如何获得分类。

Project project = ctx.Projecten.Include(p => p.ProjectCategories.Select(s => s.Sub.Select(su => su.Sub))).ToList().Find(p => p.ProjectId == projectId);

这些是域类,您可以看到我的ProjectCategorie中有一个Categorie:

public class ProjectCategorie
{
    public int ProjectCategorieId { get; set; }
    public double MinBedrag { get; set; }
    public double MaxBedrag { get; set; }
    public bool Aanpasbaar { get; set; }
    public bool AutoAanpasbaar { get; set; }

    public ProjectCategorie Super { get; set; }
    public List<ProjectCategorie> Sub { get; set; }
    public Project Project { get; set; }
    public Categorie Categorie { get; set; }
}

public class Categorie : BegrotingsPost
{

    public int CategorieId { get; set; }
    public string Beschrijving { get; set; }
    public double MinBedrag { get; set; }
    public double MaxBedrag { get; set; }

    public Begroting Begroting { get; set; }
    public BegrotingsPost Super { get; set; }
}

1 个答案:

答案 0 :(得分:8)

好的更新(误读了这个问题)......

Project project = ctx.Projecten
   .Include(p => p.ProjectCategories.Select(s => s.Sub.Select(su => su.Sub)))
   .Include(p => p.ProjectCategories.Select(s => s.Categorie))
   .Find(p => p.ProjectId == projectId)
   .ToList();

我可能也会在数据库中执行查找(可能会引入逻辑错误)。 只需将ToList()移动到查询的最后一行即可解决该问题。