none
Aplicacion en capas con Entity Framework 4.1 RRS feed

  • Pregunta

  • Hola a todos.

    Estoy desarrollando una aplicación en ASP.NET y Entity Framework 4.1, generando las clases POCO con "EF 4.x DbContext Generator for C#"

    En el modelo existe dos tablas, una de familia de materiales y otra de materiales, con una relación de 1:n de forma que un material pertenece a una familia de materiales y una familia de materiales tiene muchos materiales.

    En la capa de entidades se ha generado una para materiales y otra para la familia. Por otro lado tengo la clase de BD que se encarga de realizar las operaciones para cada una de las entidades, por ejemplo en la de materiales encontramos el código para recuperar los materiales de la siguiente forma:

    public static List<Materiales> CargarDatos()
    {
                using (DatabaseEntities bd = new DatabaseEntities())
                {
                   var datos = (from p in bd.Materiales select p).ToList();
    
                    return datos;
                }
    }

    Sin embargo en la capa de presentación me gustaría mostrar en un gridview los datos de los materiales y la descripción de la familia de materiales. ¿Como podría conseguir que la entidad de Materiales incluyera la descripción de la familia? He visto como recuperar los datos de la familia con el include o montando con LINQ la consulta, pero el problema lo tengo en que la clase Materiales no tiene un campo para la descripción de la familia

    Ninguna de las opciones que se me ocurren me parece adecuada:

    * Crear una vista con la unión de las dos tablas y crear una entidad sobre esa vista

    * Recuperar la descripción para cada una de las filas del gridview.

    * Crear en la capa de entidades una nueva entidad que herede de la entidad de materiales y agregar en ella la descripción de la familia

    Saludos 

    Jesús Garrido

    lunes, 25 de febrero de 2013 19:19

Todas las respuestas

  • Hola @Pupo73,

    Mira a ver si este otro hilo puede serte de utilidad:

    EF CTP5 - Strongly-Typed Eager Loading - How to Include Nested Navigational Properties?

    Saludos.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solución de esta pregunta te ha sido útil.


    • Editado JA Reyes martes, 26 de febrero de 2013 11:25
    martes, 26 de febrero de 2013 11:24
  • Hola JA, gracias por la respuesta.

    Con lo que me envías podría recuperar la información de las familias en la variable virtual de familias que se encuentra en la clase de materiales.

    Sin embargo lo que necesitaría es que la clase de materias tuviera un campo con la descripción de la familia para que al asignarla a un gridview se mostrara en pantalla. 

    Si le asigno una lista de la clase materias a un gridview no obtengo la descripción de la familia ya que no se encuentra en esa lista.

    Un saludo

    Jesús Garrido


    miércoles, 27 de febrero de 2013 9:41
  • Hola de nuevo,

    Creo que esto es justo lo que andas buscando:

    How do I include an unmapped field in a POCO class

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solución de esta pregunta te ha sido útil.

    miércoles, 27 de febrero de 2013 10:37