728 x 90

GroupBy e OrderBy com o Entity Framework utilizando LAMBDA Expression

GroupBy e OrderBy com o Entity Framework utilizando LAMBDA Expression

O Entity Framework (EF) é um framework de mapeamento objeto-relacional (ORM) de código aberto para a plataforma .NET, desenvolvido pela Microsoft. Neste artigo trago uma dúvida que pode ser recorrente para quem está começando e confesso que, as vezes pode ser um pouco difícil de lembrar também. Se você decora sintaxe, desculpe. Pode me julgar

O Entity Framework (EF) é um framework de mapeamento objeto-relacional (ORM) de código aberto para a plataforma .NET, desenvolvido pela Microsoft.

Neste artigo trago uma dúvida que pode ser recorrente para quem está começando e confesso que, as vezes pode ser um pouco difícil de lembrar também.

Se você decora sintaxe, desculpe. Pode me julgar porque a maioria das coisas que um dia já utilizei pode em algum momento passar batido e ter que consultar.

Acredito que isto é natural, mesmo que depois de alguns anos você não está propriamente desenvolvendo 100% do tempo projetos.

Então, para o artigo trago como que podemos utilizar uma expressão SELECT no Entity Framework sem usar a sintaxe de queries, que também é possível, mas sim utilizando Lambda Expression.

Como usar a expressão GROUP BY no Entity Framework utilizando Lambda Expression

Antes de falar de Lambda Expression, vamos visualizar como fazer a expressão naturalmente utilizando o Entity Framework.

Uma dica muito importante para quem está iniciando na programação é que antes de tentar entender o Entity Framework seria muito interessante também conhecer da sintaxe do SQL. Isto vai ajudar e muito a entender os comandos dentro do Entity Framework ou qualquer outro ORM.

Agora, deixe eu exemplificar um cenário de uma query no SQL para que possamos montar ela utilizando o LINQ. Veja o exemplo utilizando o SQL:

SELECT USR.Nome
    FROM Users     USR
GROUP BY USR.Nome

O mesmo exemplo você pode escrever utilizando expressões Lambda, você terá:

var query = context.Users
    .GroupBy(us => new {us.Key});

Simples assim e note que com uma sintaxe mais clean e bem mais fácil de entender. O unico ponto diferente é que vai construir um novo objeto para retornar o grupamento desejado, o que pode ser facilmente criado em uma classe, removendo esta criação do objeto dinamicamente.

O mesmo irá ocorrer com a ordenação de campos utilizando o LINQ e o Entity Framework Core. Veja o mesmo exemplo ordenando no SQL:

SELECT USR.*
FROM Users   USR
ORDER BY USR.Nome

O mesmo pode ser escrito utilizando uma expressão Lambda com o LINQ. Veja:

var query = context.Users
    .OrderBy(us => us.Nome);

Caso você queira exibir os campos em ordem descrescente, também há uma maneira de fazer isto utilizando o método OrderByDescending(). Veja:

var query = context.Users
    .OrderByDescending(us => us.Nome);

Lambda Expressions

Uma expressão lambda (lambda expression) é uma funcionalidade presente em várias linguagens de programação que permite criar funções anônimas de forma concisa e inline.

As expressões lambda são frequentemente usadas para criar funções simples e pequenas, que podem ser passadas como argumentos para outras funções ou usadas em contextos onde funções são necessárias.

Elas são especialmente úteis em linguagens que suportam programação funcional.

Posts Carousel

Leave a Comment

Your email address will not be published. Required fields are marked with *

Latest Posts

Top Authors

Most Commented

Featured Videos