Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EF code-first: How to load related data (parent-child-grandchild)?

I have this entity:

public class DynamicPage {

    public int PageId { get; set; }

    public int Order { get; set; }

    public string MenuText { get; set; }

    public string MenuHover { get; set; }

    public int? ParentId { get; set; }

    public virtual DynamicPage Parent { get; set; }

    public virtual ICollection<DynamicPage> Children { get; set; }
}

This entity may have 3 level: Parent -> Child -> Grandchild. How can I load the Parent (level 1) whit all associated children (level 2) and for each child, associated grandchild (level 3) if any? Thanks to help.

like image 416
amiry jd Avatar asked Sep 22 '11 00:09

amiry jd


1 Answers

EF 4.1 feature and syntax:

var entity = context.Parents
    .Include(p => p.Children.Select(c => c.GrandChildren))
    .FirstOrDefault(p => p.Id == 1); // or whatever condition
like image 137
Slauma Avatar answered Nov 13 '22 06:11

Slauma