DEV Community

Cover image for Entity Framework Core 5 - Relacionamento N-N
Marcelo Paiva
Marcelo Paiva

Posted on

Entity Framework Core 5 - Relacionamento N-N

Juntamente com o lançamento do .Net 5 também tivemos o lançamento do EF Core 5 em alinhamento com toda 'iniciativa' do .Net 5!
Particularmente em relação do EF Core 5 o que podemos observar é praticamente (e é mesmo) um produto 'novo' mas com muitos avanços que tem tornado a experiência de uso muito melhor em comparação a outros ORM's.

Neste artigo quero destacar uma novidade a muito esperada que é o relacionamento 'Muitos pra Muitos' sem precisar de especificar a classe intermediaria, o que era preciso na versão 3.1 do EF Core.

Vamos lá direto ao ponto!

Criamos duas classes e seus relacionamentos para nosso exemplo:

image

Utilizamos em nosso exemplo o Migrations para criar o banco de dados e com esse código simples abaixo realizar uma pequena carga de dados para comprovarmos os relacionamentos.

image

No banco de dados podemos constatar os registros vendo a tabela de relacionamento entre 'Usuarios' e 'Grupos':

image

A equipe do EF já está trabalhando na versão 6 que será também lançada com o .Net 6 (Teremos sim lançamento anuais), veja neste artigo (https://devblogs.microsoft.com/dotnet/the-plan-for-entity-framework-core-6-0) os rumos do EF Core.

Neste link você encontra o código completo deste exemplo:
https://github.com/marcelojpaiva/EFCore5ShowTime

Até logo!

Top comments (3)

Collapse
 
renanduart3 profile image
Renan Duarte

"'Muitos pra Muitos' sem precisar de especificar a classe intermediaria, o que era preciso na versão 3.1 do EF" , acho q vc nao quis dizer EF 3.1 pq ele foi lançado há muitos anos atrás .

Collapse
 
marcelojpaiva profile image
Marcelo Paiva

Olá Renan, na verdade quis dizer versão 3.1 do EF Core.
Já fiz o ajuste e obrigado pela observação.

Collapse
 
cidnazareth profile image
Cid Nazareth • Edited

Olá Renan.

No modelo de database first como ficaria esta configuração uma vez que já existe a tabela de junção na base com um nome diferente?