none
Duda de Rendimiento Entity Framework 6 RRS feed

  • Pregunta

  • Hola,

    Tengo un proyecto en el que todas las consultas se hacen con Entity Framework y Linq to Entities. Observando las consultas que el EF genera en el Profiler veo que todos los WHERE se hacen en el cliente, trayendose de la base de datos toda la tabla para filtrarla en el cliente.

    La pregunta es, esto no es muy perjudicial para el rendimiento? Si tengo una tabla de 50.000 registros y solo quiero consultar la información de uno de ellos me tengo que traer los 50.000 registros y luego filtrar en cliente. ¿No seríua mucho más rapìdo que el filtro se hiciera en la propia Base de Datos?


    La sentencias que utilizo son de este tipo (No utilizo el patrón Repository):

    var result = (from objPersona in DBCONTEXT.DTPERSONAS
      where
                objPersona.NIF == pNIF
                 select new                             
                 {
                          NOMBRE= objPersona .NOMBRE,
                          APELLIDOS= objPersona .APELLIDOS
                  
                 });              
     return result;

    MUCHAS GRACIAS DE ANTEMANO.


    viernes, 16 de octubre de 2015 11:58

Todas las respuestas

  • hola

    >>esto no es muy perjudicial para el rendimiento?

    pero en ese codigo que has puesto no veo que se produzca lo que comentas

    si ejecutas la query linq sobre el contexto este generar una query sql que ejecutara en el servidor, es mas si usas Sql Profiler podrias capturar esta query cuando se ejecuta

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 16 de octubre de 2015 12:07
  • Deleted
    lunes, 23 de noviembre de 2015 18:39