Состояние 500 после добавления включения в вызов базы данных

#entity-framework-core #blazor-client-side #.net-5

#entity-framework-core #blazor-на стороне клиента #.net-5

Вопрос:

После того, как я включил дочерний объект в вызов базы данных, я получаю статус 500 на клиенте. Если я пропущу включенную часть, это сработает. За исключением, конечно, я не получаю все данные. Кто-нибудь знает, что я чего-то не хватает или .net 5 или EF Core 5 работают по-другому.

Контроллер:

     [HttpGet("getsupport")]
    public async Task<IActionResult> GetSupport(Guid id)
    {
            var output = await css.GetSupport(id);
            //All the data is correct here.
            return Ok(output.ToList());
    }
 

Вызов базы данных:

     public async Task<IEnumerable<Support>> GetSupport(Guid Id)
    {
        //This gives httpstatus 500 calling from the client.
        return db.Support.Include(x => x.SupportLevel).Where(x => x.Id == Id);
    }

    public async Task<IEnumerable<Support>> GetSupport(Guid Id)
    {
        //This works when calling from the client.
        return db.Support.Where(x => x.Id == Id);
    }
 

На клиенте вызов выглядит следующим образом.

 var support = await http.GetFromJsonAsync<List<Support>>("api/support/GetSupport");
//This returns 500.
 

Комментарии:

1. 500 — это ошибка сервера, которая обычно означает, что генерируется исключение. Какую ошибку вы видите?

2. На сервере ничего. Как я уже писал, все в порядке. В списке есть все данные, даже включенные данные, у меня есть попытка поймать в контроллере, который ничего не улавливает.

3. 500 буквально означает «Внутренняя ошибка сервера», поэтому на сервере что-то есть. Попробуйте просмотреть свои журналы, средство просмотра событий или запустите его самостоятельно и посмотрите консоль. Сообщите нам о возникшей ошибке.

4. Спасибо! Я устал думать о просмотре в средстве просмотра событий. Мне не хватало: services. AddControllersWithViews() . AddNewtonsoftJson(параметры => параметры. SerializerSettings. ReferenceLoopHandling = Newtonsoft.Json. Обработка ссылок. Игнорировать );