Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Relacionamento gerente e cinema

Boa tarde. Na definição do relacionamento na classe de contexto eu comecei por gerente e não por cinema como o professor. Fiz assim:

builder.Entity<Gerente>()
                .HasMany(gerente => gerente.Cinemas)
                .WithOne(cinema => cinema.Gerente)
                .HasForeignKey<Cinema>(cinema => cinema.GerenteId);

Gostaria de saber se isso implicar em alguma coisa, a ordem das entidades nesse builder, por qual começar?

Outra coisa, dessa forma que fiz acima deu o seguinte erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeResolveu depois que tirei o tipo Cinema da propriedade HasForeignKey:

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeEntão queria entender quando usar o tipo da classe nessa propriedade ou não usar. Eu pensei uma coisa, mas não sei se está certo. Pensei que talvez dá erro quando informo o tipo porque automaticamente o ef core entender que relacionamento 1-N a chave estrangeira fica do lado N, então ele já infere o tipo. Está certo esse pensamento?

3 respostas

Boa noite, a ordem não importa (não deveria pelo menos).

Sobre o método HasForeignKey, ele não utiliza tipo genérico, por isso você recebeu o erro inicial quando tentou HasForeignKey. Voce pode consultar a assinatura do mesmo no Visual Studio ou na documentação: https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.metadata.builders.referencereferencebuilder.hasforeignkey?view=efcore-6.0

Ele usa tipo genérico sim, tanto que na definição do outro relacionamento o professor colocou o tipo Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Bom dia, esse que você citou é **HasOne**(...).WithOne(...). Mas no primeiro exemplo que deu erro estava usando o **HasMany**(...).WithOne(...).

São métodos HasForeignKey diferentes.