Entity Framework - DetectChanges

Conforme prometido no post anterior, vou resumir o funcionamento do método DetectChanges do EntityFramework. Para isso, vamos tomar como exemplo a classe de uma entidade Aluno conforme abaixo:

public class Aluno
{
    public int AlunoId { get; set; }
    public string Nome { get; set; }
    public int TurmaId { get; set; }
    public virtual Turma Turma { get; set; }    
}

Não há nenhum trecho no código acima que notifique e mantenha o controle de alteração dessa entidade.

Continue reading

EntityFramework vs NHibernate

UPDATE
Pessoal, fiz uma alteração no código, pois eu estava incrédulo com os números e resolvi estudar um pouco mais o funcionamento do EF. E sim, ele pode ser rápido!

Desabilitei o controle automático de alteração conforme sugerido no site da Microsoft - Entity Framework Automatic Detect Changes

O tempo que era de em média 40 segundo pra inserir 10.000 registros, passou a ser de 3 segundos aproximadamente. No contexto do meu teste, desabilitar esse controle automático é válido. Pode haver alguma implicação quando estivermos tratando de um ambiente mais complexo e principalmente quando estivermos lidando com operações de entidade relacional. Farei uma análise mais aguda sobre o comportamento do EF ao desabilitarmos o Auto Detect Changes. Assunto para um próximo post.

Continue reading