2009-07-29 15 views
0

Nous utilisons NHibernate comme cadre ORM. Nous avons besoin de maintenir les classes que nous chargeons au moment de l'exécution. Nous faisons cela en fonction des métadonnées qu'ils contiennent, qui contiennent les noms et les types de données dont ils disposent. Afin de construire les tables pour eux à l'exécution, nous utilisons la classe SchemaExport de l'API NHibernate ToolSet.Utilisation efficace du schéma

Nous voulions poser deux questions:

  1. Y at-il un moyen de faire NHibernate faire toutes les créations réelles dans un aller-retour à la DB au lieu d'un aller-retour par table?
  2. Pour utiliser l'outil SchemaExport, construisez une chaîne dynamique représentant un fichier de mappage à partir d'un modèle que nous conservons. Y a-t-il une meilleure manière de faire cela? Peut-être même sans une chaîne de cartographie?

Répondre

0

Ad 2. Si je vous comprends bien, vous ne voulez pas utiliser les mappages hbm, non? Avez-vous envisagé d'utiliser Fluent NHibernate? (http://fluentnhibernate.org/)

+0

Je ne veux pas faire référence à NHibernate n'importe où dans mon code (j'utilise une couche d'accès aux données abstraite, qui charge NHibernate de manière dynamique à l'exécution). Les fichiers de mappage pour les autres classes que j'ai sont ok. Le problème est juste avec ceux que je charge à l'exécution, ceux-ci ont besoin d'une table qui n'est pas encore dans la base de données et je veux éviter de leur attacher un fichier hbm.xml. –

+0

Donc FluentNHibernate avec des conventions AutoMapping est certainement quelque chose que vous devriez examiner. – maciejkow