Tabela de mapa Herança como um relacionamento individual com o Nibernate
-
22-09-2019 - |
Pergunta
Eu tenho um banco de dados que possui um relacionamento individual modelado entre uma pessoa e um endereço (que usa o ID da pessoa). No entanto, não consigo encontrar uma maneira de fazer o mapa usando o Nibernate.
Minha estrutura de mesa é a seguinte:
PersonTable PersonId PersonName PersonAge AddressTable PersonId CountryName StreetName StateName
E eu gostaria de ter algo assim como a classe final:
PersonClass int Id string Name int Age Address HomeAddress AddressClass string Street string Country string State Person Owner
Eu tentei com o relacionamento Hasone, mas não consegui reutilizar o PersonID como identificador de endereço.
Obrigado!
Editar: Esqueci de mencionar que estou usando o fluentnibernato para que o mapeamento fluente e o XML fiquem bem.
Solução 2
Eu fiz isso usando id (). Gerado.
Obrigado!
Outras dicas
O problema é que seu esquema de banco de dados não representa um relacionamento "tem um" entre pessoa e endereço. Representa um relacionamento "tem muitos"; Você pode estar limitando artificialmente como um endereço por pessoa, mas isso não muda o fato de que o modelo é vários endereços por pessoa.
Para obter um relacionamento "tem um", você colocaria o endereço no Pessoal.
Eu mapearia isso como um componente da pessoa. No mapa de classe da pessoa, adicione o seguinte:
Component(x => x.Address, m =>
{
m.Map(x => x.Street, "Street");
m.Map(x => x.State, "State");
// more here
});
Felicidades