c# – Relacionamento de um para muitos com EF Core no Blazor não está funcionando corretamente

Tenho uma aplicação em Blazor .NET 5, nela eu tenho uma página que tem a finalidade de exibir uma lista de missões e quando o usuário clicar, a missão é exibida. Estou usando o Entity Framework Core para persistir os dados no SQL Server. Até esse ponto, está funcionando corretamente, a lista de missões estão sendo carregadas e exibidas e quando o usuário clica, exibi a respectiva missão. Porém, também é necessário exibir as condições para que a tarefa seja concluída e essas condições estão em outra tabela do banco de dados. Nisto estou tendo os seguintes cenários:

  1. No uso do Lazy Loading, apenas as condições da primeira missão são obtidas e as demais ficam sem condições, apesar de terem.
  2. De outra maneira, fazendo a persistência de dados manualmente, todas as missões ficam com as condições da primeira missão.

Tentei depurar neste segundo cenário, porém o único momento que me parece errado, por algum motivo, é quando o EF Core me retorna as condições que são da primeira missão, mesmo eu especificando o id de outra.

Exemplo da entidade de uma missão (Quest.cs):

public class Quest
{
    public int Id { get; set; }

    public string Title { get; set; }

    public string Description { get; set; }

    // Propriedade para o cenário de Lazy Loading.
    public virtual ICollection<QuestCondition> Conditions { get; set; }
}

Exemplo da entidade de uma condição de uma missão (QuestCondition.cs):

public class QuestCondition
{
    public int Id { get; set; }

    public int QuestId { get; set; }

    public string Title { get; set; }

    // Propriedade para o cenário de Lazy Loading.
    public virtual Quest Quest { get; set; }
}

Obs.: As classes Quest e QuestCondition estão em um projeto .NET Framework v4.0, não sei se isso pode ter influência.

Exemplo da página de missões:

Quests.razor

@page "/quests/{id:int?}"

<nav>
    @foreach (var quest in QuestsList)
    {
        var href = $"/quests/{quest.Id}";

        <NavLink href="@href">
            @quest.Title
        </NavLink>
</nav>

@if (CurrentQuest is not null)
{
    <h1>
        @CurrentQuest.Title
    </h1>

    @{
        // Cenário com Lazy Loading.
        var conditions = CurrentQuest.Conditions;
        // Cenário manual.
        var conditions = CurrentQuestConditions;

        foreach (var condition in conditions)
        {
            <p>
                @condition.Title
            </p>
        }
    }
}

Quests.razor.cs

public partial class Quests
{
    (Inject)
    private GameDbContext GameDbContext { get; init; }

    (Parameter)
    private int QuestId { get; init; }

    private Quest CurrentQuest { get; set; }

    // Propriedade para o cenário manual.
    private QuestCondition CurrentQuestCondition { get; set; }

    private IList<Quest> QuestsList { get; set; }

    protected override async Task OnParametersSetAsync()
    {
        if (QuestId > 0)
        {
            CurrentQuest =
                await GameDbContext.Quests.FirstOrDefaultAsync(e => e.Id == QuestId);
        }

        QuestsList = await GameDbContext.Quests.ToListAsync();

        if (CurrentQuest is null)
        {
            CurrentQuest = QuestsList.First();
        }

        // Cenário manual.
        CurrentQuestCondition =
                await GameDbContext.QuestConditions.Where(e => e.QuestId == CurrentQuest.Id).ToListAsync();
    }
}