Entity Framework – Queries com Expression<Func<T, bool>> e Func<T, bool>

Apesar dos dois tipos de dados compilarem normalmente quando os utilizamos em um query method, existe uma diferença no modo como as queries do Entity Framework são criadas quando utilizamos Expression<Func<T, bool>> e Func<T, bool>.

frajola

Quando utilizamos Expression<Func<T, bool>> o Entity Framework reconhece a expressão existente e a transforma em código SQL.

Mas, quando utilizamos Func<T, bool>, a função é compilada em Intermediate Language, e não é transformada em código SQL. Desta forma o filtro é feita em memória, logo após o load dos dados vindos do banco de dados.

Leia mais deste post

Anúncios

Gerando registros de log automáticos com o Entity Framework

Uma tarefa bastante recorrente durante o desenvolvimento de sistemas é a criação de rotinas de log. E o Entity Framework facilita a nossa vida quando temos de fazer isso.

Com o Entity Framework podemos criar uma customização que encapsule os comandos que serão enviados para o banco de dados e então adicionar uma lógica que gere os registros de log necessários para cada operação.

log de dados

Leia mais deste post

Entity Framework – Melhores práticas em busca de performance

Separei neste post algumas dicas de como tornar suas aplicações com Entity Framework mais performáticas. As dicas abaixo se resumem a um grupo de boas práticas que costumo aplicar em meus projetos. Algumas desta dicas não se aplicam apenas ao Entity Framework, mas se aplicam a outras ferramentas ORM ou técnicas de modelagem de sua camada de acesso a dados.

Tornando sua aplicação mais performática

Leia mais deste post

Entity Framework 6 – Database.BeginTransaction() e Database.UseTransaction(DbTransaction)

Ao falarmos sobre transações é bastante comum ouvir sobre o acrônimo ACID (Atomicidade, Consistência, Isolamento e Durabilidade). O conceito ACID descreve características necessárias em uma transação, sendo estes conceitos:

Atomicidade: uma transação é uma sequência de operações tratadas como um bloco único e indivisível. Todas as suas operações devem ser executadas com sucesso ou nenhum resultado será refletido na base de dados.

Consistência: a execução de uma transação deve manter a integridade dos dados.

Isolamento: transações paralelas não devem interferir na execução umas das outras. Existem diferentes tipos de isolamentos, algo que veremos a seguir.

Durabilidade: ao executar com sucesso, os efeitos da transação (os dados alterados, inseridos e excluídos) devem estar disponíveis em definitivo.

acid

Leia mais deste post

Entity Framework 6 – Crie uma instância de DbContext por meio de uma instância de um DbConnection

Um dos novos recursos disponíveis no Entity Framework 6 é a possibilidade de criar novas instâncias de contexto utilizando uma instância de DbConnection ativa. Operações que mesclam comandos em ADO.Net e com o Entity Framework podem fazer uso deste recurso.

No Entity Framework 6, a classe DbContext ganhou novas assinaturas para seus construtores, permitindo o uso de uma instância ativa de DbConnection para criação de um novo contexto. Para ver todos os construtores disponíveis na classe DbContext acesse este link: http://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext(v=vs.103).aspx

Desenho1

Leia mais deste post

Entity Framework 6 – Mapeando procedures para inclusão, atualização e exclusão de entidades.

Nas versões anteriores do modelo Code First era possível o uso de stored procedures apenas na execução de queries. Atualmente, no Entity Framework 6 (ainda como Release Candidate) é possível o mapeamento de stored procedures para execução de comandos de inclusão, alteração e exclusão de registros.

logo

Leia mais deste post

Entity Framework 6 RC

A versão Release Candidate do Entity Framework 6 foi lançada essa semana, mais especificamente dia 21 de Agosto. Até então, o Entity Framework 6 estava na versão beta, desde o dia 28 de Maio de 2013.

clip_image002

Leia mais deste post

Entity Framework – Carregando dados relacionados

Existem três abordagens diferentes que podemos utilizar para realizar o load de dados relacionados entre entidades. Essas três abordagens atingem os mesmos resultados, mas existem diferenças entre elas. Tais diferenças fazem com que cada abordagem seja melhor empregada em uma situação diferente das demais.

Não acredito que escolher uma das três abordagens e usá-la em todos os casos seja vantajoso. Acredito que o ideal é conhecer o funcionamento de cada uma das técnicas e reconhecer quando utilizar cada uma delas.

clip_image002

Leia mais deste post

Entity Framework 5 (Internals)

Neste post gostaria de descrever alguns procedimentos importantes para execução de queries via Entity Framework 5. Acredito que a explicação do funcionamento e da existência destes procedimentos pode ajudar na resolução de cenários mais avançados e no entendimento do funcionamento do Entity Framework.

Unicorn-Sugar-Skull

Cold e Warm Queries

A primeira vez que uma query é executada, o Entity Framework executa muito trabalho para carregar e validar o modelo de dados utilizado.

Leia mais deste post

Entity Framework Power Tools

Já ouviu falar do Entity Framework Power Tools? Como assim não?!?!?!

O Entity Framework Power Tools é um pacote de extensão criado para auxiliar na criação do seu modelo de dados utilizando os novos recursos da DbContext API. A instalação do Entity Framework Power Tools funciona tanto para o Microsoft Visual Studio 2010 quanto para o Microsoft Visual Studio 2012, o próprio pacote de instalação é o mesmo para ambas IDEs.

Leia mais deste post