Trabajando en una aplicación asp.net MVC code first, tenía una relación de muchos a muchos, no estoy seguro si esto causó el problema, pero al querer ejecutar una simple instrucción linq similar a esta:

return context.Estudiante
       .OrderBy(o => o.Nombre);

estaba obteniendo este error:

A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.Estudiante_CEA0F1…'.

Encontré la solución en este artículo, la cual consiste en establecer un valor en el constructor del DbContext.

Por default lo encuentras así:

public ApplicationDbContext()
 : base("DefaultConnection", throwIfV1Schema: false)
 {
 }

Y tienes que agregar la línea que va entre las llaves:

public ApplicationDbContext()
 : base("DefaultConnection", throwIfV1Schema: false)
 {
    this.Configuration.ProxyCreationEnabled = false;
 }

Y listo, ya con esto se elimina el error mencionado.

P.D. Si tu problema se debe a que estás tratando de regresar un JsonResult con el serializador que viene con ASP.NET, entonces te recomiendo que en vez de seguir la solución anterior, mejor utilices Json.Net. Puedes añadir la librería así:

using Newtonsoft.Json;

Y ver ejemplos aquí.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


dos × = 4