LINQ para iniciantes 5 - Explicando as chamadas feitas pelo Linq

watch_later 2 de jul de 2013

Explicando as chamadas feitas pelo Linq

Primeiro, vamos tentar entender como consultas LINQ realmente trabalham e depois vamos ver elas acontecem. Vamos considerar o projeto de banco de dados abaixo, onde temos três tabelas: clientes, endereços e telefones. Há um um-muitos entre cliente e endereços, enquanto que há um-um entre endereços e telefones.

Criamos três entidades conforme o design da tabela: ClsCustomerWithAddresses, ClsAddresses e ClsPhone. Nós definimos as relações entre eles usando EntitySet e EntityRef.
Para preencher os objetos de entidade com os dados da tabela é um processo de cinco etapas. Como primeiro passo, a conexão DataContext é criado usando a string de conexão, a consulta LINQ é criada, e então começa a navegar através do cliente, endereço e telefones.

Analisando os LINQ SQL roundTrips(idas e voltas)

Agora temos analisar por que existem cinco passos para executar uma consulta LINQ, vamos tentar descobrir em qual etapa a consulta LINQ realmente dispara o SQL para o banco de dados. O que vamos fazer é, vamos executar o código LINQ acima e analisá-lo usando o SQL Profiler.
Agora, quando você executar a consulta, você vai encontrar coisas abaixo:
- A execução do SQL real ocorre quando a instrução foreach é iterada sobre os objetos LINQ.
- A segunda coisa muito impressionante que você vai notar é que para cada entidade, uma consulta separada é disparado para o SQL Server.
Por exemplo, para o cliente, uma consulta é demitido e consultas separadas para o endereço e os telefones são disparados para instanciar os objetos de entidade. Em outras palavras, um monte de ida e volta ao banco.

Bom galera , ficamos por aqui a abaixo estão os links das postagens da mesma série , espero que seja útil ,qualquer dúvida comente , ou mande email para contato@virtualbase.com.br

Lista de Postagens da série LINQ PARA INICIANTES :