LINQ - Apresentando LINQ Include
Hoje vou apresentar os recursos do LINQ Include mostrando a sua atuação. |
O LINQ Include fornece a capacidade de incluir entidades relacionadas a serem carregadas do banco de dados.
|
Há várias maneiras
de ler dados da fonte de dados e carregar resultados nas propriedades de
navegação de uma entidade. O Eager Loading fornece
a funcionalidade do LINQ Include() recuperando os
dados relacionados sempre que a entidade é lida.
Isso produzirá um grande conjunto de resultados no início, mas não serão
enviadas mais consultas ao banco de dados para buscar os dados relacionados.
Pelo contrário, várias consultas serão chamadas para recuperar os dados
relacionados sem a função Include(). As outras duas
opções são carregamento lento ou Lazy Loading e carregamento explícito,
que não recuperam os dados relacionados em uma única consulta de junção.
Se o requisito for recuperar os dados relacionados para cada entidade, o
carregamento antecipado é a melhor opção para usar nesse cenário, porque uma
única chamada é feita ao banco de dados em vez de enviar vários comandos para
buscar os dados usando a função Include(). A função
Include() pode resultar em uma junção complexa que
será interpretada pelo SQL.
Como usar expressões Lambda com LINQ Include
Em versões anteriores do Entity Framework, você precisava passar o nome da
propriedade de navegação como um argumento entre aspas para a função
LINQ Include(), e neste cenário, o compilador não
conseguia identificar os erros de compilação até que o aplicativo estivesse no
modo de execução e executasse o comando. A outra desvantagem disso é que você
não pode usar o Intellisense e o recurso de
refatoração.
LINQ Include x Join
A função Include() retém a estrutura e os objetos originais das entidades, enquanto a função Join fornece a representação plana dos dados. Ambos irão adquirir os mesmos resultados, mas a representação é diferente para cada função. O código a seguir ilustra a diferença de programação entre as funções Include e Join:
LINQ Include x Where
A função Include é uma alternativa para a função Where no LINQ. O código a seguir ilustra a diferença de programação entre as funções Include e Where:
LINQ Include vs Select
As funções Include e Select fornecem a funcionalidade de recuperar uma lista ou
um único objeto. O código a seguir ilustra a diferença entre as funções :
LINQ Include vs SelectMany
As funções Include() e SelectMany() fornecem dados de recuperação em vários níveis. O código a seguir ilustra a diferença entre essas funções:
E estamos conversados...
"Louvai ao SENHOR
todas as nações, louvai-o todos os povos.
Porque a sua benignidade é grande para conosco, e a verdade do Senhor dura para
sempre. Louvai ao Senhor."
Salmos 117:1,2
Referências: