.Net Core WebAPI连接重置,当我在我的控制器中“包含”时

时间:2017-06-02 07:05:56

标签: c# asp.net-core asp.net-core-webapi

我有一个带有.Net Core的新项目。这是一个WebAPI项目。我的模型有一个单独的项目。

在WebAPI项目中,在控制器中,我有这样的东西:

    // GET: api/questions
    [HttpGet]
    public IEnumerable<Question> GetQuestions()
    {
        return _context.Questions
            .Include( i => i.QuestionType );
    }

当我调用http://localhost:55555/api/questios/时,它只返回第一条记录,然后显示以下错误消息:      Recv failure:连接已重置

如果我删除Include部分并返回_context.Questions,那就可以正常使用了!

我的代码出了什么问题?

2 个答案:

答案 0 :(得分:10)

我找到了答案。谢谢所有帮助过的人。

我根据Loading related data

添加了json选项
  

如果您使用的是ASP.NET Core,则可以将Json.NET配置为忽略它在对象图中找到的循环。这是在Startup.cs中的ConfigureServices(...)方法中完成的。

            services.AddMvc()
              .AddJsonOptions(
                    options => options.SerializerSettings.ReferenceLoopHandling
                        = Newtonsoft.Json.ReferenceLoopHandling.Ignore );

答案 1 :(得分:0)

试试这个:

// GET: api/questions
[HttpGet]
public IEnumerable<Question> GetQuestions()
{
    var res = _context.Questions
        .Include( i => i.QuestionType ).ToArray();
    return res;
}