none
Linq VS a SQL RRS feed

  • Pregunta

  • Hola tengo una duda sobre la performance de LINQ frente a SQL

    Supongamos una conexión a un servidor remoto (donde los tiempos de respuesta son mayores a un servidor local)

    Cuando por ejemplo modifico varios registros en forma simultánea utilizo el siguiente código

    Dim Q = FROM pr IN Base1.Productos WHERE pr.Talle=44

    FOR EACH pr IN Q.ToList

    pr.Sector=11

    NEXT

    Base1.SubmitChanges

    Si no estoy equivocado, la sentencia Q.ToList lee todos los datos del servidor y luego cuando confirmo con SubmitChanges envía los cambios al servidor. Es decir que la totalidad de los datos 'viajan' 2 veces.

    En cambio con SQL podría hacer todo en una sola sentencia UPDATE que no traslada los datos sino que los procesa en el servidor.

    ¿Estoy en lo cierto?

    ¿Hay otra manera de hacerlo con LINQ que sea mas eficiente?

    Gracias.


    dario

    miércoles, 5 de febrero de 2014 1:04

Respuestas

  • hola

    que pasa si haces

    FOR EACH pr IN Q
       pr.Sector=11
    NEXT
    
    Base1.SubmitChanges

    sin el ToList() de esa forma las entidades seguiran dentro del contexto

    podrias poner el sql profiler para analiza como se definen las actualizaciones

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta dario1429 jueves, 6 de febrero de 2014 21:17
    miércoles, 5 de febrero de 2014 12:37

Todas las respuestas

  • hola

    que pasa si haces

    FOR EACH pr IN Q
       pr.Sector=11
    NEXT
    
    Base1.SubmitChanges

    sin el ToList() de esa forma las entidades seguiran dentro del contexto

    podrias poner el sql profiler para analiza como se definen las actualizaciones

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta dario1429 jueves, 6 de febrero de 2014 21:17
    miércoles, 5 de febrero de 2014 12:37
  • Muchas Gracias Leandro

    Saludos

    Darío


    dario

    jueves, 6 de febrero de 2014 21:18