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

Responder a