none
Relacionar dos o mas modelos RRS feed

  • Pregunta

  • Tengo una duda y le agradecería de antemano a aquella persona que me pueda ayudar a evacuarla.

    Tengo varios modelos y mi duda surge a la hora de relacionarlos.

    Ejemplo: Tengo los modelos Universidad, Estudiante y Asignatura; el modelo Universidad tiene una lista de estudiantes, y  el modelo Estudiante tiene una lista de Asignatura,  y la Asignatura tiene una lista de estudiantes asociados a ella.

    Mi pregunta es como relaciono los modelos? Saludos

    viernes, 27 de febrero de 2015 2:07

Todas las respuestas

  • hola

    pero cual seria el objetivo de relacionar los modelos ?

    porque el modelo depende mucho de la view que los utilice, para que crear tantas relaciones si las vistas tendran una edicion simple de estas entidades

    definir views complejas no es muy aconsejable

    quizas deberias modelar las view para saber como sera el modelo que necesitas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 27 de febrero de 2015 2:31
  • Gracias por contestar...

    De no relacionar estos modelos como adiciono en este caso una asignatura a un estudiante, o un estudiante a la universidad?

    viernes, 27 de febrero de 2015 3:13
  • Hola,

    ¿Quieres relacionar modelos o entidades? Quizá estás confundiendo términos.

    viernes, 27 de febrero de 2015 3:41
  • Cuando hablo de modelo me refiero a una entidad en este caso(Universidad, Estudiante, Asignatura) que a mi modo de ver deben estar relacionadas de alguna manera, puede que no sea necesario pero realmente tengo la duda.

    Gracias por la atención

    viernes, 27 de febrero de 2015 4:29
  • Hola,

    Un modelo es un conjunto de entidades. Modelo y entidad son dos cosas distintas.

    Intentaré mostrar como relacionar las entidades Universidad y Estudiante

    public class UniversidadEntity
    {
      public int IDUniversidad { get; set; }
      public string NombreUniversidad { get; set; }
    
      public virtual ICollection<EstudianteEntity> Estudiante { get; set; }
    }
    
    
    public class EstudianteEntity
    {
      public int IDEstudiante { get; set; }
      public string NombreEstudiante { get; set; }
    
      public virtual UniversidadEntity Universidad { get; set; } 
    }

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    viernes, 27 de febrero de 2015 4:43
  • Sabes que pasa, siempre he visto que se relacionan de esa forma, y hasta ahora lo hacia de ese modo, pero en un video vi que crean otra clase para "unir" estas dos entidades teniendo como atributos el id de cada clase; algo así... 

     

    public class ViewModel {

    [Key] public int IDUniversidad { get; set; }

    [Key]

    public int IDEstudiante { get; set; }

    }

    y es cuando me crea la duda.

    viernes, 27 de febrero de 2015 4:57
  • Hola,

    Hay escenarios donde una vista se construye con mas una entidad y dependiendo de ello es que podrías contener en un wrapper-model las entidades que vayas a usar en tu vista. Por ejemplo, si en una vista mostrarías las universidades y los estudiantes podrías crear un ViewModel UniversidadAlumno que contenga ambas entidades.

    public class UniversidadAlumno
    {
      public List<Universidad> Universidad { get; set; }
      public List<Alumno> Alumno { get; set; }
    }

    O podrías tener sólo algunas propiedades. Ello depende de la vista, queda claro por ejemplo el típico caso cabecera-detalle donde podrías tener un ViewModel de ambas entidades para ser mostradas en una sola vista.

    viernes, 27 de febrero de 2015 5:09
  • Muchas gracias, por tu respuesta me a ayudado bastante, ya me queda claro como debo usarlo. GRACISAS!!!!!!! 

    Es que estoy empezando y todas las dudas llegan juntas....

    viernes, 27 de febrero de 2015 5:22
  • hola

    una duda son clase de modelo o son clases de entidades que usas para persistir ? poque son cosas muy distintas

    una clas eque usas con entity framowork no necesariamente despues se usa como modelo en una view de forma directa

    si la ides es aprender EF y relacionar entidades quizas esto ayude

    [Entity Framework] Code First - Manejando Relacionadas

    si bien las clase de EF puedes usarlas en una view a veces no es el mejor camino

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 27 de febrero de 2015 8:24
  • OK Leandro muchas gracias, es que al parecer estoy confundiendo conceptos.
    sábado, 28 de febrero de 2015 18:14