none
Performance Linq RRS feed

  • Pergunta

  • Bom dia senhores.

    Senhores gostaria da opinião de alguém que estivesse mais avançado, que possua conhecimentos em relação a tecnologia linq/entityframework... Ele é melhor que SQL puro em relação a velocidade e segurança.

    Minha preocupação é em uma aplicação de grande porte, se a performance dele será eficiente.

    sexta-feira, 11 de dezembro de 2015 12:50

Todas as Respostas

  • São tantos pontos Luiz!

    O melhor nesse ponto é criar uma coesão entre as camadas e analisar sempre o que vai acontecer em cada rotina, porque, você pode quebrar em vários contextos a sua camada de ORM Entity se tiver muitas Entidades em apenas uma. Outro ponto crucial é como escrever o LINQ, sempre utilize o LINQ TO SQL em vez do LINQ TO OBJECTS

    Exemplo:

    Linq To SQL: (Correto)

    contexto.Pessoas.Where(x => x.Name.Contains("a")).ToList()

    Linq To Object (Errado)

    contexto.Pessoas.ToList().Where(x => x.Name.Contains("a")).ToList()

    Porque:  A primeira expressão cria a SQL e retornar o dado já com o filtro, já o segundo traz tudo e depois filtro aumentando a performance e causando um gargalo muito grande.

    O ideal seria você trabalhar com ENTITY e um MicroORM ou ADONET Puro para geração mais otimizadas de SQL, tipo para gravar alterar e excluir utilize Entity e para SQL complexas uma camada ADONet ou MicroORM.

    Eu já fiz uma aplicação grande com Entity e até hoje não tive problemas, fiz rotinas otimizadas e analisamos cada ponto da aplicação e é bem viável ...


    Fulvio C

    • Sugerido como Resposta SimorC segunda-feira, 14 de dezembro de 2015 16:27
    segunda-feira, 14 de dezembro de 2015 14:08
  • Boa tarde.

    Complementando a resposta do Fulvio:

    Sabendo usar a tecnologia, ela é bastante eficiente; e, honestamente, acho que deixa o código muito mais elegante (se bem organizado, a manutenção fica uma barbada).


    Att., Rafael Simor

    segunda-feira, 14 de dezembro de 2015 16:29