我尝试使用导航属性返回带有嵌套列表的JSON,但我在' Usuario'收集在这里的输出。
[
{
"$id": "1",
"id": 1,
"encabezado": "Como llamar a un metodo en c#",
"cuerpo": "Estoy intentando llamar un metodo metodo() pero no puedo alguna sugerencia xD?",
"points": 0,
"Usuario": null,
"Respuestas": []
},
{
"$id": "2",
"id": 2,
"encabezado": "Como cambiar conection String",
"cuerpo": "Es posible cambiar el conection string en asp.net si ya esta creada?",
"points": 1,
"Usuario": null,
"Respuestas": []
}
]
这是我的.edmx
最后这就是我拥有web api的地方
namespace AskTecProject.Controllers
{
public class QuestionController : ApiController
{
[HttpGet]
public List<Pregunta> GetQuestions()
{
using (asktecdbEntities entities = new asktecdbEntities())
{
List<Pregunta> p = entities.Usuarios.Where(m => m.id.Equals(1)).SelectMany(m => m.Preguntas).ToList<Pregunta>();
return p;
}
}
}
}
我从Getting a related collection收到了他的询问,但我仍然遇到这个问题,我会感激任何帮助
答案 0 :(得分:2)
您应该使用Eager Loading:
List<Pregunta> preguntas = entities.Usuarios
.Where(u => u.id.Equals(1))
.SelectMany(u => u.Preguntas)
.Include(p => p.Usuario) // here
.ToList<Pregunta>();
旁注 - 似乎所有Preguntas实体都将具有id = 1的相同Usuario实体。此外,您不需要为ToList
方法指定通用参数 - 应该推断出参数。