public virtual T Get(int id, params Expression <Func <T, object> >[] associations) { if (associations.Any() == false) { return(_context.Set <T>().Find(id)); } //http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-related-entities.aspx var query = associations.Aggregate(_context.Set <T>().AsQueryable(), (current, path) => current.Include(path)); return(query.SingleOrDefault(i => i.Id == id)); }