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.

Foi útil?

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

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