Nibernato fluente e um a um
-
20-09-2019 - |
Pergunta
Por um (muito) tempo, tenho procurado um exemplo de como implementar corretamente um um a um Mapeamento com Nibernato Fluente.
A maioria dos recursos que encontro diz:
Eu acho que você quer dizer muitos para um
No entanto, ninguém realmente dá um exemplo sobre como implementar corretamente a relação individual.
Então, Você poderia dar um exemplo de mapeamento individual com Nibernato fluente?
Nota: Não estou interessado em pessoas dizendo "qual é o seu modelo, você pode realmente precisar Tem muitos"Não, obrigado, eu simplesmente preciso de um um a um exemplo.
Para ser mais preciso, Eu conheço a sintaxe. Essa é a única coisa que pude encontrar pesquisando sozinho. O que estou procurando é um exemplo mais completo, incluindo uma configuração de banco de dados ((muito) simples) e todo o mapeamento, de todas as entidades que participam do relacionamento, que eu acho que teria tamanho razoável para o excesso de pilha.
Solução
Eu resolvi meu problema.
Também escrevi um artigo um tanto detalhado sobre esse problema, que você pode encontrar em: http://brunoreis.com/tech/fluent-nhibernate-hasone-how-implement-one-to-one-relationship/index.html
Você encontrará um cenário em que queremos um relacionamento individual, o esquema de banco de dados como gostaríamos, o código do modelo, como precisa ser para atender aos requisitos de Nibernate, e o Fluente Mapeamento que corresponde à situação.
Outras dicas
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;
}
Isso deve ser adicionado na configuração fluente.
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();
}
Este é o melhor exemplo Eu tenho visto. Espero que atenda às suas necessidades.
HasOne(x => x.Prop)