¿Cómo debo deshabilitar la lista de referencia (externa) de la tabla de Entity Framework de cada objeto?

Estoy usandoBase de datos SQLite ySystem.Data.SQLite 1.0.92 Hay 2 tablas aquí:

Persona de mesa:

PersonId

PersonName

Estudiante de mesa:

Identificación del Estudiante

PersonId (tabla de referencia Person FK)

Estudiante no

Ahora, cada vez que obtengo la Colección de Personas en EF5:

using (var ctx = new myEntities)
{
  AllPersons = ctx.Persons.ToList();
}

También hay tieneAllPersons.student la colección incluirá en el resultado;

Pero no lo necesito. Por supuesto, eso es solo un ejemplo, hay muchas tablas grandes con tantas referencias que siempre tiene problemas de rendimiento aquí debido a eso.

Así que estoy tratando de no dejarlo en mi resultado. Entonces lo cambio:

using (var ctx = new myEntities)
{
      ctx.Configuration.ProxyCreationEnabled = false;
      ctx.Configuration.LazyLoadingEnabled = false;
      AllPersons= ctx.Persons.ToList();
}

Ahora bien, porqueAllPersons.student la colección siempre seránull

Pero ahora encontré: Si consigo Persona y Estudiantejuntos:

using (var ctx = new myEntities)
{
    ctx.Configuration.ProxyCreationEnabled = false;
    ctx.Configuration.LazyLoadingEnabled = false;
    AllPersons= ctx.Persons.ToList();
    AllStudents = ctx.Student.ToList();
}

Ahora la referencia todavía incluye en.

Entonces, ¿hay alguna forma deno dejes que la referencia incluya en cualquier momento en esta situación? Gracias.

Actualizar

Para la solicitud de algunos amigos, explico por qué lo necesito:

1: Cuando lo convierto a json, será un bucle muerto. incluso yo ya uso Json.netReferenceLoopHandling, el tamaño de json es muy grande para bloquear el servidor (si no hay referencias, es solo un json muy pequeño)

2: Cada vez que obtengo los datos del cliente y necesito guardar, mostrará una excepción sobre el estado del modelo, hasta que lo configure ennull.

Ejemplo:

using (myEntities ctx = new myEntities())
 {
 ctx.Configuration.LazyLoadingEnabled = false;
 ctx.Configuration.ProxyCreationEnabled = false;



  Person model= ThisIsAModel();

  model.students = null;  // This is a key, I need set the students collection references to null , otherwise it will throw exception

  ctx.Entry(model).State = EntityState.Modified;
  ctx.SaveChanges();

}

3: Este es un problema más importante. Ya obtengo todos los datos y el caché en el servidor. Pero permitirá que el tiempo de carga sea muy largo cuando se inicie el servidor. (porque los datos y las referencias son tantos, ese es el problema principal), no sé si volveré a encontrarme con ese tipo de problema ...

public List<Person> PersonsCache; // global cache
public List<Student> StudentsCache; // global cache
using (myEntities ctx = new myEntities())
 {
     ctx.Configuration.LazyLoadingEnabled = false;
     ctx.Configuration.ProxyCreationEnabled = false;
 // There is so many references and data, will let it very slow , when I first time get the all cache. even I only get the Person model, not other , just because some Collection has some references problem. It will very slow....

   PersonsCache = ctx.Persons.ToList();
   StudentsCache= ctx.Student.ToList();
}

Respuestas a la pregunta(9)

Su respuesta a la pregunta