fluent nhibernate - Fluido NHibernate y uno a uno
fluent-nhibernate one-to-one (4)
Durante mucho (mucho) tiempo he estado buscando un ejemplo sobre cómo implementar correctamente un mapeo uno a uno con Fluent NHibernate.
La mayoría de los recursos que encuentro dicen:
Creo que te refieres a muchos a uno
Sin embargo, nadie da realmente un ejemplo sobre cómo implementar correctamente la relación uno a uno.
Entonces, ¿ podría dar un ejemplo de mapeo uno a uno con Fluent NHibernate ?
Nota: no me interesa que la gente diga "cuál es su modelo, es posible que necesite HasMany ". No, gracias, simplemente necesito un ejemplo de uno a uno .
Para ser más precisos, conozco la sintaxis . Eso es lo único que pude encontrar buscando solo. Lo que estoy buscando es un ejemplo más completo, que incluye una configuración de base de datos ((muy) simple) y toda la asignación de todas las entidades que participan en la relación, que creo que tendría un tamaño razonable para el Desbordamiento de pila.
He resuelto mi problema.
También he escrito un artículo bastante detallado sobre este problema, que puede encontrar en: http://brunoreis.com/tech/fluent-nhibernate-hasone-how-implement-one-to-one-relationship/index.html
Encontrará un escenario en el que queremos una relación uno a uno, el esquema de la base de datos como nos gustaría, el código del modelo tal como debe ser para cumplir con los requisitos de NHibernate, y el mapeo Fluent que corresponde a la situación .
Este es el mejor ejemplo que he visto. Esperemos que satisfaga sus necesidades.
HasOne(x => x.Prop)
these are the two classes.
public class A
{
public virtual int Id {get;set;}
public virtual string P1 {get;set;}
public virtual string P2 {get;set;}
public virtual string P3 {get;set;}
public virtual B child { get; set; }
}
public class B
{
public virtual int Id {get;set;}
public virtual string P4 {get;set;}
public virtual string P5 {get;set;}
public virtual string P6 {get;set;}
public virtual A parent;
}
Esto debe agregarse en la configuración fluida.
public AMap()
{
/* mapping for id and properties here */
HasOne(x => x.child)
.Cascade.All();
}
public BMap()
{
/* mapping for id and properties here */
References(x => x.parent)
.Unique();
}