Pregunta

Tengo una base de datos que tiene una relación de uno a uno modelada entre una persona y una dirección (que utiliza ID de la persona). Sin embargo, no puedo encontrar una manera de hacer el mapa utilizando NHibernate.

Mi estructura de la tabla es la siguiente:

PersonTable

PersonId
PersonName
PersonAge

AddressTable

PersonId
CountryName
StreetName
StateName

Y me gustaría tener algo como esto como la última clase:

PersonClass

int Id
string Name
int Age
Address HomeAddress

AddressClass

string Street
string Country
string State
Person Owner

He intentado con relación hasOne pero yo no podía reutilización PERSONID como Dirección identificador.

Gracias!

Editar Me olvidé de mencionar que estoy usando FluentNHibernate por lo tanto el mapeo fluidez y XML va a estar bien

.
¿Fue útil?

Solución 2

Lo hice usando Id (). GeneratedBy.Foreign () en la clase de mapa Dirección referencia a la Person's Identificación y funcionó.

Gracias!

Otros consejos

El problema es que su esquema de base no representa una relación "tiene uno" entre la persona y dirección. Representa un "tiene muchos" relación; Usted puede limitar artificialmente a ser una dirección por persona, pero eso no cambia el hecho de que el modelo es varias direcciones por persona.

Para obtener una "cuenta con uno" relación, que pondría la AddressID en el la PersonTable.

Me asignarla como componente de la persona. En la persona ClassMap agregar lo siguiente:

 Component(x => x.Address, m =>
        {
            m.Map(x => x.Street, "Street");
            m.Map(x => x.State, "State");
            // more here
        });

Saludos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top