我正在处理将数据返回到Web API,并希望返回一个完整的导航属性列表。我认识到这涉及使用.Include()
指令,但是,它不像MS文档中描述的加载相关实体那样工作。
public S3Roles GetRoleById(Guid roleId)
{
using (_context)
{
try
{
return _context.S3Roles
.Include(r => r.S3UserRoles)
.FirstOrDefault(r => r.Id == roleId);
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
}
}
当我在"现实生活"中运行此示例时,我最终会返回一条S3UserRole
条记录,而不是数据库中实际存在的五条记录。
哦,但从那里变得奇怪。我可以查看Chrome Rest Web服务客户端中的记录,并使用单个S3UserRole检索记录。如果我切换到Fiddler并执行相同的GET请求,它将返回504错误[Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 655 bytes.
如何以automagically
的方式正确返回所有导航属性记录并正确地序列化为JSON以返回到Web API的控制器并最终返回给调用者?