Awkward Generic Repository Call
I know this is not 100% spot on, but you should be able to take something from it and apply it in your own repository.

Here's a piece of code I use for one of my EF repositories, which I find very useful. I use a lot of Razor templating which won't lazy-load entities, so whenever I need to eagerly-load, I just include whatever relational entities I need before passing it to razor.

    public IQueryable&lt;T&gt; FindByInclude&lt;T&gt;(Expression&lt;Func&lt;T, bool&gt;&gt; predicate, params Expression&lt;Func&lt;T, object&gt;&gt;[] include) where T : class
    {
        IQueryable&lt;T&gt; query = _context.Set&lt;T&gt;().Where(predicate);

        foreach (var item in include)
        {
            query = query.Include(item);
        }

        return query;
    }


Example:

var user = Repo.FindByInclude&lt;User&gt;(z=&gt;z.Name = "Joachim Nordvik", "Address","Properties.Extended");


Now both the Address relation and Properties.Extended relations are eagerly loaded.