none
problema con consulta linq con join y where RRS feed

  • Pregunta

  • Hola, 

    tengo un problema con una consulta a las siguientes tablas

    tabla1: estudios

    -idEstudio

    -NombreEstudio

    tabla2: estudiosFlujos

    -idEstudioFlujo

    -usuarioOrigen 

    -usuarioDestino

    -idEstudio

    la consulta que quiero hacer es obtener todos los nombres de estudio donde usuarioOrigen = "parametro" y usuarioDestino ="parametro"

    ambos estan siendo comparados con el mismo parametro 

    el problema es que me devuelve los resultados duplicados cuando un estudios tiene asociado mas de 1 estudiosFlujos

    la consulta en SQL es la siguiente 

    SELECT  *

    FROM estudios

    WHERE idEstudio IN (SELECT idEstudio FROM EstudiosFlujos WHERE idUsuarioDestino = @usuario OR idUsuarioOrigen = @usuario)

    esta consulta en SQL funciona bien y no me devuelve duplicados , en cambio con la siguiente consulta SI devuelve duplicados

    var estudios = from e in db.Estudios
                               join f in db.EstudiosFlujos
                               on e.idEstudio equals f.idEstudio
                               where (f.idUsuarioOrigen == idUsuario || f.idUsuarioDestino == idUsuario)
                               select e;

    Espero me puedan ayudar

    saludos

    miércoles, 10 de julio de 2013 19:51

Todas las respuestas

  • hola

    y si usas el Distinct de linq

    de esta forma evitarias los duplicados

    eso si analiza cuando se sua una clase porque qyuizas debas implementar el Icomparable o alguna interfaz de estas para poder decidir que entidad es diferente a la otra

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 11 de julio de 2013 11:13