Hola uhilari, Esto, mas que de NH, es una cuestion de diseño.
Te posteo una respuesta que di hoy en un foro de diseño de objetos, si se te complica con el ingles avisame y lo traduzco. En resumen, creo que resolver lo de persona/familiar/cliente mediante herencia no es una buena opcion. ================================================================ Hi Nino I would apply the actor/role pattern [1]. In your post I see one actor and three roles. Actor: "Person" which models a person, probably holding the postal address information (inside an instance of an hypothetical PostalAddress class). 1st and 2nd role: "Seller" and "Buyer" which models the seller and buyer state and behavior and, probably, an specific address for the role if your customer allows for separate addresses. You "make a person a seller" attaching that role. 3rd role: "User" which holds the credentials (user name and password). That way, you can revoke a person the user role without deleting the person entity. That's the beauty of the actor-role pattern (and good object design in general), all seems easier. HTH [1] http://www.google.com/search?q=actor+role+pattern ================================================================ Carlos Peix -----Mensaje original----- De: [email protected] [mailto:[email protected]] En nombre de uhilari Enviado el: Jueves, 08 de Enero de 2009 12:22 p.m. Para: NHibernate-Hispano Asunto: [NHibernate-Hispano] Re: Cambiar de Clase Gracias. Seria una buena alternativa. Solo que en mi caso las implemente con Tablas para todos. Es decir tengo una tabla Persona y una tabla Cliente, en el caso que me dices, si seria facil hacer la conversion, creo que esto lo tendria q manejar desde SQL directamente, pregunta, aunque parezca tonto, pero quiero sacarme la duda, NHibernate, soporta SQL directo no?? COmo un insert en este caso??? On 8 ene, 09:12, "Diego Ramirez" <[email protected]> wrote: > Esto es medio loco. Pero leiste la estrategia de mapeo donde coexisten > dos o mas clases mapeadas en una misma tabla y discriminadas por un > campo que maneja nhibernate internamente?. tal vez cambiando ese campo > podrías transformar (en la base) de Persona a Cliente. > Saludos. > > 2009/1/8 uhilari <[email protected]> > > > > > > > > > perdonen, si no parece de NHibernate, y a la verdad es culpa mia, > > por que no hice bien la pregunta, osea si he leido sobre la herencia > > y ya la he implementado, lo que quiero saber, es como podria darse > > este caso en NHibernate, lo que pasa es que no estoy seguro de como > > afectaria esto mis clases mapeadas y las relaciones de la BD > > > bueno, no se si ayude un poco el contexto pero la idea es la > > siguiente: > > guardare una Persona por X motivos, (por ejemplo puede ser un > > familiar de algun trabajador) y cuando quiera agregar a esta persona > > como cliente nuestro entonces debe de cambiarse a instancia de > > Cliente, esto lo hago normal creo una nueva instancia y copeo todos > > los datos, pero mi pregunta es como afecta esto a mis relaciones ha > > implementadas y mapeadas con NHibernate?? > > > espero haberme explicado mejor > > > On 8 ene, 08:37, "Diego Ramirez" <[email protected]> wrote: > > > Me parece que te covendría leer NHibernate in Action, ahi hay un > > > capítulo entero sobre el manejo de herencia y los mapeos necesarios. > > > Saludos a todos. > > > > 2009/1/8 Fabio Maulo <[email protected]> > > > > > Ese es mas un tema de OOP y te aconsejo de preguntarlo en alguna > > > > lista abierta de C# > > > > > 2009/1/8 uhilari <[email protected]> > > > > >> Pues como dice el nombre, ya se que se ve alfo escandaloso, > > > >> pero paso a explicar. > > > > >> tengo estas 2 clases > > > > >> public class Persona > > > >> { > > > >> . > > > >> . > > > >> . > > > >> } > > > > >> public class Cliente: Persona > > > >> { > > > >> . > > > >> . > > > >> . > > > >> } > > > > >> bien la idea es la siguiente, en determinado caso quiero que un > > > >> objeto de tipo Persona se convierta en tipo Cliente. > > > > >> Mi primera idea era crear un nuevo Cliente y luego copiarle > > > >> todos los campos, pero eso implicaria que su Id sea diferente; > > > >> lo que yo quisiera es mantener el objeto, pero cambiarle la > > > >> clase, ya se que parece sacado de una pelicula de Horror, pero > > > >> al ser un descendiente, se me ocurre que podria darse. > > > > >> Alguna Idea? > > > > >> Gracias > > > > > -- > > > > Fabio Maulo > > > > -- > > > Ramirez, Diego Alcides > > > Ingeniero en Sistemas de Información > > > Tel:(+543731)-15405075 > > > Blog:www.thedarsideofit.com.ar > > > Equipo de Desarrollo - VGM Sistemaswww.vgmsistemas.com.ar-Ocultar > > > texto > > de la cita - > > > > - Mostrar texto de la cita - > > -- > Ramirez, Diego Alcides > Ingeniero en Sistemas de Información > Tel:(+543731)-15405075 > Blog:www.thedarsideofit.com.ar > Equipo de Desarrollo - VGM Sistemaswww.vgmsistemas.com.ar- Ocultar > texto de la cita - > > - Mostrar texto de la cita - --~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---
