Tuve una pregunta similar a Fluent NHibernate: How to create one-to-many bidirectional mapping? pero me interesaba la situación cuando tenía un mapeo de uno a uno. Por ejemploFluidez NHibernate: ¿Cómo crear mapeo bidireccional uno a uno?
Umbrealla
ID
Owner
UmbreallaOwner
ID
Umbrella
Como sabemos, cada sombrilla solo puede ser propiedad de una persona y nadie posee más de una sombrilla. En un mapa fluidez Me gustaría tener algo como
UmbrellaMap()
{
Id(x=>x.ID);
References<UmbrellaOwner>(x=>x.Owner);
}
UmbrellaOwnerMap()
{
Id(x=>x.ID);
References<Umbrella>(x=>x.Umbrella);
}
Al crear las tablas de fluidez creará un campo en el paraguas referncing el ID de umbrellaOwner y un campo de referencia umbrellaOwner paraguas. ¿Hay alguna manera de cambiar el mapeo de modo que solo se cree una clave foránea pero las propiedades Umbrella y Owner estarán disponibles? Los ejemplos que he visto implican el establecimiento de las relaciones en ambas direcciones por lo que añadir un nuevo paraguas parece
AddUmbrealla(UmbrellaOwner owner)
{
var brolly = new Umbrella();
brolly.Owner = owner;
owner.Umbrella = brolly;
session.Save(owner); //assume cascade
}
que parece lógico, pero un poco engorroso.