Incluya todas las propiedades de navegación usando Reflection en el repositorio genérico usando EF Core

Estoy trabajando en la creación de un repositorio genérico para un proyecto EF Core para evitar tener que escribir CRUD para todos los modelos. Un obstáculo importante que he encontrado es que las propiedades de navegación no se cargan, ya que Core aún no admite la carga diferida y la clase genérica obviamente no puede definir .Incluir declaraciones para propiedades específicas de la clase.

Estoy tratando de hacer algo como esto para que mi método Get incluya todas las propiedades dinámicamente:

public virtual T Get(Guid itemId, bool eager = false)
        {
            IQueryable<T> querySet = _context.Set<T>();

            if (eager)
            {
                foreach (PropertyInfo p in typeof(T).GetProperties())
                {
                    querySet = querySet.Include(p.Name);
                } 
            }

            return querySet.SingleOrDefault(i => i.EntityId == itemId);
        }

Pero arroja un error al incluir propiedades que no son propiedades de navegación.

Encontré esta respuesta que es casi lo mismo, pero es para EF 5 e involucra métodos que no están presentes en EF core:

EF5 Cómo obtener una lista de propiedades de navegación para un objeto de dominio

¿Es posible lograr lo mismo en EF Core?

Respuestas a la pregunta(1)

Su respuesta a la pregunta