none
Navigation properties ¿condicionadas? RRS feed

  • Pregunta

  • Hola a todos,

    Soy bastante nuevo en EF4. Os cuento cuál es mi modelo de datos y lo que quiero hacer.
    No es mi modelo real, pero está simplificado al máximo para explicarme lo mejor posible.

    Tengo una tabla Equipo, con datos de equipos de futbol (ID, nombre, puntos), y tengo una tabla de Jugadores (ID, nombre, numero). Luego tengo una tabla que relaciona qué jugadores pertenecen a un equipo (IdEquipo, IdJugador), pero además, tiene otro campo, que indica la posición del jugador en el equipo (portero, defensa, medio, delantero).

    Si genero el modelo de EF4 contra esa BD, me generá 3 entidades, tal cual las tablas.
    Lo que quiero hacer con el designer, es una relación muchos a muchos, donde en la entidad Equipo, haya 4 propiedades de navegación: Porteros, Defensas, Medios, Delanteros, que se rellenen con los jugadores, que en la tabla que relaciona Equipos y jugadores, tienen esa posición.

    He visto cosas parecidas, donde usan herencia, es decir, sacan 4 entidades: Portero, Defensa, Medio, Delantero, que heredan de Jugador. SObre esas entidades, definen la condición, y luego, apuntan las propiedades de navegación a esas entidades. Sin embargo, yo no necesito esas 4 entidades heredadas, ya que en mi modelo real, no hay nada que diferencie a esas entidades hija, de la padre. En el caso de equipos y jugadores, puede tener sentido que un portero, tenga un campo específico para goles encajados, xejm, y un delantero para goles metidos, pero en mi caso, no necesito entidades hijas.

    Además, otra restricción importante, es que la posición del jugador, no forma parte de la entidad Jugador, si no que depende del equipo. Es decir, un jugador puede ser medio en un equipo y delantero en otro equipo (nunca 2 posiciones en el mismo equipo, eso sí).

    Se puede poner una condición a las propiedades de navegación? o lo tengo que resolver con herencia?

    Espero haberme explicado.
    Muchas gracias,

    Un saludo.

    miércoles, 5 de enero de 2011 11:09

Todas las respuestas

  • Hola Luisman,

    creo que no termine de entender porque necesitas una condición en la navegación, ¿no te vale hacer una consulta cuando quieres obtener una colección hija?

    De todas formas, te recomiendo que cuando trabajes con ORM, como EF, empieces diseñando tu modelo en el diseñador de EF y luego generes la BD automáticamente. Cuando empezamos con un bd y queremos generar el modelo se complica un poco en casos como este.

     


    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin | MVP SharePoint Server
    miércoles, 5 de enero de 2011 12:19
  • Hola.. haz avanzado en tu proyecto!?

     

    Saludos

    martes, 15 de noviembre de 2011 16:35
  • Lo siento. no tengo ninguna novedad. era simplemente un proyecto casero para aprender a hacer cosas con EF, y no he avanzado nada.

    suerte!

    sábado, 26 de noviembre de 2011 21:21
  • Que lastima, porque yo tambien queria empezar uno ... por ahi podriamos colaborar. Saludos!

     

    miércoles, 30 de noviembre de 2011 19:56