none
Store Procedure y EntityFramework RRS feed

  • Pregunta


  • Hola que tal…

    Primero que nada un saludos a todos, este es mi primer pregunta y pss espero hacer mas aportes, ayudándonos aprenderemos más rápido…

    Bueno empecemos, el problema que tengo es con un SP, el cual regresa los datos de una entidad (A).

    La entidad A tiene campos, y entre estos campos se encuentra una PK y FK.

    La FK es la PK de la Entidad B, la cual es de tipo int al igual que la PK de la entidad A.

    Como el SP es un simple Select este no se mapea desde mmm pss donde se mapean los insert, update y delete.

    Lo que hice con este SP, fue crear una función dándole Clic con el mouse y siguiendo los pasos del la creación.

    AQUÍ ESTA EL DETALLE.

    Cuando cree esta función, me solicito que especificara el tipo de objeto de salida con el que contaría este método, los cuales solo son tres.

    <           *None. Cosa que no escogí por que si regresa dato.

                 *Scale. Cosa que tampoco escogí porque si regresa más de un dato.

                 *Entity. Esta opción fue la que escogí, seleccionando la entidad A.

    Una vez que se creó la función, cree el código necesario para utilizarla. Hice unas pruebas y todo bien. Sin embargo mi sorpresa al momento de querer obtener el valor de la FK ya que esta no aparece como un int sino como un objeto tipo entity B.

    Y pss ahí tienen mi problema.

    1.- Como puedo obtener el valor de la FK?

    2.-Al crear un método hay una forma de elegir los datos que devolverá o es necesario crear su entity de regreso?

     

    Saludos. Si lo resuelvo antes que contesten pss lo publico saludos.

     

     

     

     


    Desarrollador .NET
    viernes, 12 de febrero de 2010 19:35

Todas las respuestas

  • Buenas Gerardo, la solución sería hacer algo como esto:

    EntidadA miObjeto = new EntidadA();
    miObjeto.EntidadBReference.Load(); //Hay que cargar la referencia a un objeto asociado para cargar los campos de dicho objeto.
    int cp = miObjeto.EntidadB.ClavePrimaria;
    Un saludo, a ver si con eso funciona.
    viernes, 26 de febrero de 2010 11:33
  • Hola que tal Victor....

    Muchas gracias por tu respuesta... la vdd no lo he probado pero, se ve que es pacticamente eso... muchas gracias..

    Desarrollador .NET
    viernes, 26 de febrero de 2010 16:30
  • Otra solución sería pasarte a Entity Framework 4 que trae mejoras en los SP y en la gestión de las FK
    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin
    miércoles, 17 de marzo de 2010 22:11
  • mmmmmmm.. como se puede pasar el EF 4. .?? o solo viene con el 2010. ? se puede actualizar el 2008 SP1 al EF 4 ?
    viernes, 19 de marzo de 2010 14:32
  • Imagino que el EF4 sólo se podrá usar con el Visual 2010, .NET 4.0 y tal, pero veo un poco heavy migrar una app entera x esto, cuando tiene solución realtivamente simple en EF3.5.

    viernes, 19 de marzo de 2010 14:37
  • Tendrías que pasate a Visual Studio 2010 y actualizar a Framework 4.0

    La ventaja es que si sólo necesitas el FK Id ya lo tienes y no tienes que realizar la carga del objeto relacionado (con la consecuente consulta al sql) para obtener tan solo ese valor.

     


    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin
    viernes, 19 de marzo de 2010 14:49
  • Gracias Alberto...

    Acabo de instalar el 2010 y lo revisare, les platico mas adelante como me fue, hasta entonces.. saludos y gracias a de nuevo


    Desarrollador .NET
    viernes, 19 de marzo de 2010 16:14