2016-04-22 8 views
0

Ich versuche, sowohl die Liste der Projektkategorien (Unterkategorien) als auch die Kategorie einer Projektkategorie abzurufen, die Unterlisten werden abgerufen. Aber ich habe keine Ahnung, wie ich die Categorie bekommen soll.mehrere Objekte in einem Objekt einschließen [Entitätsframework]

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

Dies sind die Domain-Klassen, wie Sie habe ich eine Kategorie in meinem ProjectCategorie sehen:

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; } 
} 
+0

Wie wäre es mit 'Include (TEntity)'? –

+0

könnten Sie das erklären? – Michiel

+1

Mögliches Duplikat von [Entity Framework - Mehrere Eigenschaftenebenen einschließen] (http://Stackoverflow.com/questions/10822656/entity-framework-include-multiple-levels-of-properties) – Default

Antwort

7

Ok Update (mis lesen Sie die Frage) ...

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(); 

Ich würde wahrscheinlich den Fund in der DB auch tun (könnte einen logischen Fehler sonst einführen). Verschieben Sie einfach die ToList() in die letzte Zeile der Abfrage wird das lösen.

+0

Wie ich schon sagte, die Subs werden abgerufen , Ich muss in der Lage sein, die Kategorie für die ProjectCategorie auch abrufen, aber ich weiß nicht, wie – Michiel

+1

ah ok ... ein weiteres hinzufügen ... hängen fest, ich werde meine Antwort aktualisieren – War

+1

das funktioniert! :) Vielen Dank! – Michiel

Verwandte Themen