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.

Foi útil?

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)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top