Cześć. Mam trochę dziwny problem, mam wrażenie, ze coś jest nie tak z danymi które pobieram z bazy danych.

Mam taki kontroler:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using GetWork.Data;
using GetWork.Models.Domain;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Cors;

namespace GetWork.Controllers.Api
{
    [Produces("application/json")]
    [EnableCors("SiteCorsPolicy")]
    public class ConversationsApiController : Controller
    {
        private ApplicationDbContext _context;

        public ConversationsApiController(ApplicationDbContext context)
        {
            _context = context;
        }

        // GET: api/Conversations/5
        [HttpGet]
        [Route("api/conversations/getconversations/{id}")]
        public List<Conversation> GetConversations(int id)
        {
            var jobs = _context.Job.
                Include(c => c.Conversations).Where(j => j.ID == id).SingleOrDefault();
            return jobs.Conversations ?? new List<Conversation>();
        }

    }
}

Metoda GetConversations pięknie działa, jak zwrócę pustą listę albo jakąś utworzoną na sztywno, natomiast jak wyciągnę dane wedle powyższego zapytania, do w przeglądarce dostaję błąd net::ERR_CONNECTION_RESET. Nie do końca rozumiem, o co może chodzić- o rozmiar odpowiedzi?

EDIT: Naprawione, zmieniłem zapytanie na logiczniejsze, ale w sumie zastanawiam się, czemu ono nie działało.

Rozwiązanie dla potomnych:

Problem miałem z modelem- obiekt Job zawiera kolekcję obiektów Conversation, a Conversation zawiera obiekt Job, to którego on przynależy. Wszystko fajnie działa, dopóki nie spróbujemy tego poddać serializacji- z powodu circular reference wywalany jest wyjątek. Zrozumiałem, dlaczego powinno się używać DTO zamiast czystego modelu. :D

Opcjonalnie w konfiguracji można dodać taką linię:

options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

Ignoruje ona takie referencje i ich nie dołącza do JSON'a..