Hola Nestor, Sip, creo que esa es la opcion, en un momento probe una one-to-one desde Customer a Party pero se complica cuando no puedo usar la clase base (el caso en que los actores no hereden de una clase comun).
Muchas gracias ---------------------------------- Carlos Peix 2011/6/1 Nestor Rodriguez <[email protected]> > Yo diria que hagas el mapping de la herencia y haces un <many-to-one > class="Party"> en Customer y en Party mapearias la coleccion de Roles. > > 2011/6/1 Carlos Peix <[email protected]> > >> Hola gente, >> >> Quiero consultarles algo ya que estoy tratando de encontrar una forma de >> mapeo mas o menos estandar para un problema mas o menos estandar en mis >> modelos. La consulta no solo se relaciona con el mapeo en NH, tambien me >> interesa determinar la estructura de BD mas adecuada. >> >> Basicamente es la relacion evento-rol-actor, para que quede mas claro, >> permitanme conpartir algunas clases: >> >> // evento >> public class Order { >> Guid _id; >> Customer _customer; >> } >> >> // el rol >> public class Customer { >> Guid _id; >> Party _actor; // (1) u Object _actor >> } >> >> // actores (ver Fowler para teoria sobre Party/Company/Person y >> accountability) >> public class Company : Party { >> Guid _id; >> string _companyName; >> } >> >> public class Person : Party { >> Guid _id; >> string _firstName; >> string _lastName; >> } >> >> (1) aqui puedo tener definida alguna clase base para los actores que >> pueden adoptar el rol de customer (como seria el caso de Party) y otras >> veces no, para lo cual tendre que usar Object. Entiendo que esto me lleva a >> dos respuestas distintas a mi consulta. >> >> La pregunta es como me conviene mapear la propiedad _actor de Customer, ya >> se en el caso en que esta deba ser de tipo Object o Party. >> >> He probado con any y con many-to-one. Este objeto Customer podria o no >> utilizar el mismo valor para el Id que el actor. Opino que lo mejor seria >> que no lo hagan. Por ahi con Guids no hay problema pero en otros casos me >> restringe. >> >> Un punto adicional seria que, probablemente, necesite en la entidad >> Company o Person una coleccion de todos los roles desempeñados, seria como >> la relacion opuesta y, en este caso, definitivamente no los roles no van a >> compartir ninguna clase base salvo, eventualmente, una interfaz "IRol". >> >> ---------------------------------- >> Carlos Peix >> >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> [email protected] >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano > > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
