none
Cómo realizar un discriminator para ayuda con herencia en el archivo edmx RRS feed

  • Pregunta

  • http://img690.imageshack.us/img690/7848/edmxi.jpg

    Hola, sucede que tengo mi modelo de entidad relación en un archivo emdx como lo pueden ver en el link que dejo arriba. Pueden darse cuenta que estoy manejando herencia. La clase padre es Zona que a su vez tiene en true la propiedad abstract y sus clases hijas son País, Dpto,y Mpio. Estas tres ultimas clases deben heredar tanto como Id, nombre y habitantes, pues son propiedades que comparten cada una, es decir que tanto un pais, un Dpto y un Municipio deben de tener un identificador, un nombre y una cantidad de habitantes. Por esta razon se crea la entidad zona que es la que tendrá estos atributos en común de sus clases hijas.

    El problema es que cuando quiero pasar este modelo entidad relación a tablas, me crea una tabla zona, una zonas_pais, zonas_dpto y zonas_mpio, cada una de ellas con un id. Culquiera diría que hasta aquí todo esta bien, pero el problema es que el Id, es para identificar a cada uno de ellos y no puede ser repetido, es decir, si tengo un país con un Id =001, no puede haber alguna otra zona (pais, dpto, mpio) con este mismo Id y al tener las tablas así, yo puedo crear una zona con Id = 002, y asignarle a un pais esta id, pues al bajar a tablas, y crear un atributo o columna Id en la tabla país, esta columna es llave foranea y esta ligada al Id de zonas, por ende yo podría crear un pais con id =002 y un dpto con id=002.

    Estuve buscando información y en una de las publicaciones de msdn, vi que se podia modificar el mapeo para en vez de bajar los datos a las clases hijas, podía subir los datos de las tablas hijas a la tabla padre, y para identificar de que tabla hace parte, se debe crear una columna discriminadora, la cual se podia crear de dos formas: la primera, dandole clic derecho a la relación de herencia y en las propiedades establecer la columna discriminadora, pero al darle clic derecho no aparece la opción. La otra manera era modificar el .edmx abriendo un editor de texto y crear la columna discriminadora, pero no entendí muy bien como hacerla. Si alguien puede informarme, darme un ejemplo, o tiene una mejor idea de como resolver mi problema le agradecería que me lo comentara.

     

    gracias de antemano

    • Cambiado Alberto PoblacionMVP sábado, 28 de agosto de 2010 7:27 Consulta sobre Entity Framework, lleva varios dias sin responder en el foro de C# (De:Lenguaje C#)
    jueves, 26 de agosto de 2010 15:54