2009-08-20 6 views
1

Une question simple, j'espère avec une réponse simple. J'avais l'impression que je devais créer mes tables et ensuite utiliser les fichiers map pour mapper mes classes POCO aux objets de la base de données. Après avoir suivi quelques cours d'instruction, j'ai ce code dans mon test SetUp:Lorsque vous travaillez avec NHibernate, devriez-vous créer vos tables de base de données avant vos fichiers de carte?

new SchemaExport(_configuration).Execute(false, true, false, false); 

Ce qui, évidemment, créer la structure de la table telle que définie dans les correspondances, donc je suis confus.

Répondre

1

Vous avez besoin des fichiers de mappage pour SchemaExport.

Idéalement, vous devez d'abord écrire/concevoir vos classes, puis écrire les fichiers de mapping. Lors de l'écriture de fichiers de mappage, vous concevez les tables de base de données en même temps. SchemaExport crée simplement le schéma à partir des fichiers de mappage où toutes les informations sont généralement disponibles. SchemaExport est fortement recommandé, même s'il est un peu "caché" dans les docs.

1

Il est préférable d'avoir un seul endroit pour changer, dans votre cas, vous faites des changements dans vos classes et votre base de données est mise à jour automagiquement - attendez-vous quelque chose de mieux?

Parfois, vous écrivez un nouveau code pour une base de données existante, vous devez donc d'abord créer (ou avoir) une base de données, puis préparer manuellement les mappages. J'utilise Fluent NHibernate, donc cela peut être fait entièrement automatiquement, pas sûr dans différents environnements.

Questions connexes