I have a table with id and parentId columns the nesting level is just 1(for now).  

Right now I load items like this:

```
using (KEntities ctx = new KEntities())
{
    ctx.KSet.MergeOption = MergeOption.NoTracking;

    var items = (from c in ctx.KSet
                 where c.ParentId == 0
                 select new
                 {
                     Title = c.Title,
                     Id = c.Id,                           
                     Subs = ctx.KSet.Where(o => o.ParentId == c.Id)                                      
                 }).ToList();

 }

```

The other option that I can choose is to set self-reference on the table, so the entity will expose self-navigation properties and then I can use Load() to load the children (lazy loading?).

Which approach is preferred and why?