2010-10-28 6 views
9

Estoy usando SchemaUpdate para sincronizar mi hbms con la base de datos existente. La base de datos se ha creado recientemente en base al hbms y está completamente actualizada. Pero SchemaUpdate genera todas las restricciones de clave externa de nuevo.NHibernate SchemaUpdate agregar claves extranjeras existentes de nuevo?

Por ejemplo, supongamos que tiene Student y Teacher. Student tiene asociación con Teacher con el nombre ArtTeacher. ArtTeacher es una clave externa de Student a Teacher. Supongamos que la base de datos está actualizada y actualmente holde Student, Teacher y su relación de clave externa. Entonces, HBM y Database son equivalentes. Sepa SchemaUpdate no debe hacer nada, pero cuando veo sus scripts generados, vuelve a producir esa clave externa de nuevo.

¿Por qué sucede esto? Hay alguna manera de evitarlo?

+0

No me queda claro a qué te refieres, ¿puedes dar un ejemplo? – UpTheCreek

+0

Ver mi pregunta actualizada. –

+0

Estoy obteniendo esto también; Tengo una relación de clave externa existente y ejecuto un nuevo SchemaUpdate (config) .Execute (action, false) sigue queriendo regenerarlo ... No puedo entender lo que estoy haciendo mal ... –

Respuesta

1

El secreto es asegurarse de especificar nombres para las claves externas, o de lo contrario NHibernate generará un nombre aleatorio que no coincidirá con el esquema existente.

(Saqué esta respuesta de la publicación de blog de Google Cache of Afshar).

Cuestiones relacionadas