На всякий случай, если это кому-нибудь пригодится, я нашел решение.
Я установил пакет EntityFrameworkCore.Proxies и включил отложенную загрузку, как описано здесь (https://dotnetcoretutorials.com/2019/09/07/lazy-loading-with-ef-core/ ). Это дало некоторые ошибки для сопоставления свойств, которые не были виртуальными (хотя не те, которые использовались в указанном выше запросе c). После того, как я это исправил, все заработало.
Странно то, что теперь он работает и с отложенной загрузкой, поэтому может быть достаточно просто добавить ссылку Proxies в проект или убедиться, что вся ваша навигация свойства виртуализированы, но я все равно оставлю LL включенным, так как это имеет смысл для моего проекта.