Courant NHibernate et un à un
-
20-09-2019 - |
Question
Pour un (très) longtemps que je suis à la recherche d'un exemple sur la façon de mettre en œuvre correctement one-to-one mapping avec Fluent NHibernate.
La plupart des ressources que je trouve disent:
Je pense que vous voulez dire many-to-one
Cependant, personne ne donne en fait un exemple sur la façon de mettre en œuvre correctement l'un à une relation.
pourriez-vous donner un un à un exemple de mise en correspondance avec Fluent NHibernate
Note: Je ne suis pas intéressé par les gens dire « quel est votre modèle, vous pouvez avoir besoin hasMany ». Non, merci, je simplement besoin d'un one-to-one par exemple.
Pour être plus précis, Je sais que la syntaxe . C'est la seule chose que je pouvais trouver en effectuant une recherche par moi-même. Ce que je suis à la recherche est un exemple plus complet, y compris un ((très) simple,) la configuration de base de données et la cartographie ensemble, de toutes les entités qui participent à la relation, qui je pense serait d'une taille raisonnable pour débordement de la pile.
La solution
Je l'ai résolu mon problème.
J'ai aussi écrit un article peu détaillé sur ce problème, que vous pouvez trouver à: http://brunoreis.com/tech/fluent-nhibernate-hasone-how-implement-one-to-one-relationship/index.html
Vous trouverez un scénario dans lequel nous voulons un-à-un, le schéma de base de données que nous le voudrions, le code du modèle tel qu'il doit être de répondre aux besoins NHibernate et le Courant mapping qui correspond à la situation.
Autres conseils
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;
}
Il faut ajouter dans la configuration fluide.
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();
}
C'est le meilleur exemple Je l'ai vu. Espérons que cela répond à vos besoins.
HasOne(x => x.Prop)