2009-07-29 9 views
0

Wir verwenden NHibernate als unser ORM-Framework. Wir müssen Klassen, die wir zur Laufzeit laden, persistent machen. Wir tun das gemäß den Metadaten, die sie enthalten, die Namen und Typen der Daten enthalten, die sie haben. Um die Tabellen zur Laufzeit zu erstellen, verwenden wir die SchemaExport-Klasse aus der NHibernate ToolSet-API.Verwenden des Schema-Exports effizient

Wir wollten zwei Fragen stellen:

  1. Gibt es eine Möglichkeit NHibernate die tatsächlichen alle an die DB in einer Hin- und Rück Kreationen auszukommen statt einer Rundreise pro Tisch?
  2. Um das SchemaExport Tool zu verwenden, erstellen Sie eine dynamische Zeichenfolge, die eine Zuordnungsdatei aus einer Vorlage darstellt, die wir behalten. Gibt es einen besseren Weg, dies zu tun? Vielleicht sogar ohne Mapping-String?

Antwort

0

Anzeige 2. Wenn ich Sie richtig verstehe, wollen Sie nicht hbm Mappings, richtig? Haben Sie in Betracht gezogen, Fluent NHibernate zu verwenden? (http://fluentnhibernate.org/)

+0

Ich möchte nirgendwo in meinem Code NHibernate verweisen (Ich verwende eine abstrakte Datenzugriffsebene, die NHibernate dynamisch zur Laufzeit lädt). Die Mapping-Dateien für die anderen Klassen, die ich habe, sind in Ordnung. Das Problem ist nur mit denen, die ich auf Laufzeit laden, diese benötigen eine Tabelle, die noch nicht in der DB ist, und ich möchte vermeiden, eine hbm.xml-Datei an sie anzuhängen. –

+0

So FluentNHibernate mit AutoMapping-Konventionen ist definitiv etwas, was Sie sich anschauen sollten. – maciejkow