通过JSON返回完整的导航属性列表

时间:2016-12-06 22:23:13

标签: c# json linq navigation-properties

我正在处理将数据返回到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的控制器并最终返回给调用者?

0 个答案:

没有答案