jueves, 13 de septiembre de 2012

Problema de serialización entre Entity y Jquery AJAX

Cuando utilizamos objetos muy complejos generados por EntityFramework (Con Foreign Key) y demás nos da un error de serialización.

Por Ejemplo:


[HttpPost]
public JsonResult ObtenerLocalidad(int id)
{
  return Json(db.Departamentos.Where(x => x.idProvincia == id).ToList(), JsonRequestBehavior.AllowGet);          
}


Donde el modelo departamento tiene una propiedad de tipo provincia, para solucionar esto lo que debemos hacer es un Linq y seleccionar solo los campos que requerimos de la siguiente forma:

[HttpPost]
public JsonResult ObtenerLocalidad(int id)
{
   var records = from entity in db.Departamentos.Where(x => x.idProvincia == id)
                 select new
                 {
                   Id = entity.Id,
                   Nombre = entity.Nombre
                 };

return Json(records, JsonRequestBehavior.AllowGet);
}

No hay comentarios:

Publicar un comentario