none
problema SP y entity framework c#

    Pregunta

  • hola tengo un SP que me devuelve un conjunto de resultados ( un full outer join de 3 tablas), y el problema está que del lado de visual studio cuando almaceno los resultados en una variable no me deja capturar determinadas columnas de esos registros, solamente me deja seleccionar todos los campos de la segunda y tercera tabla establecidas en el join

    var query = db.sp_name(valor)
    foreach ( var item in query)
    { item.propiedad}

    //si pongo item.propiedad me lista solamente las de la segunda y tercer tabla por mas que yo en el SP seleccione 2 columnas o todas las columnas de las tres tablas, no se porque motivo ignora la tabla 1. 

    dejo un ejemplo de como plantie el  full outer join en el SP

    SELECT * from paciente P
    FULL OUTER JOIN (SELECT * FROM tabla1) A on P.idpac= A.idpac      
    FULL OUTER JOIN (SELECT * FROM tabla2) B on A.id= B.id
    FULL OUTER JOIN (SELECT * FROM tabla3) C on A.id= C.id 			 
    where P.idpac=@numpac
    a que se debe esto? tengo algo mal en el join? porque en del lado de SQL anda todo perfecto

    domingo, 03 de junio de 2018 10:38

Todas las respuestas

  • Mira a ver si es que hay dos columnas que tengan el mismo nombre en dos de las tablas. Cuando esto ocurre, Entity Framework no "sabe" utilizar esas columnas. Si este fuera el caso, la solución es listarlas expresamente poniéndoles un alias, en lugar de usar un * en el Select. Por ejemplo:

    Select P.ID As Paciente_ID, A.ID As Tabla1_ID, P.Nombre, ... etc.

    • Propuesto como respuesta Sergio ParraMVP sábado, 16 de junio de 2018 9:31
    lunes, 04 de junio de 2018 5:58
  • he intentado con eso pero no funciona, no se porque entity framework no me devuelve las columnas de la primera tabla del join
    viernes, 15 de junio de 2018 23:25