Ich möchte DDD in einem neuen Projekt verwenden und zuerst meine Klassen modellieren und dann das Datenbankschema basierend auf der Klassenbibliothek generieren. Mein Plan ist, dies mit dem NHibernate hbm2ddl Tool SchemaExport
zu tun.NHibernate SchemaExport und Configure() catch-22
Das Problem ist, dass ich nicht die SchemaExport
wegen eines seltsamen Catch-22 Problems bekommen kann es in bringt mich zu arbeiten. Die SchemaExport
erfordert ein Configuration
Objekt, das selbst eine gültige NHibernate-Konfigurationsdatei sowie einen Satz erfordert von Datenbankzuordnungen.
Die Catch-22 ist hier, dass, wenn ich das Configure() zu tun, es "Could not determine the name of the table for entity 'MyEntity'; remove the 'table' attribute or assign a value to it."
So ist die Configure()
Methode beschwert, um die Tabelle zu bestehen erfordert, während die SchemaExport
sollte es auf dem Configuration
Basis zu schaffen, die ich nicht erstellen weil die Tabelle nicht existiert, existiert nicht.
So, wie auf der Erde bin ich verpflichtet, eine gültige NHibernate Configuration
enthält die Zuordnungen erstellen soll für SchemaExport
tatsächlich etwas tun, um nützliche ohne Configure()
Wurf mit und beschweren sich, dass es nicht die Tabellen, die mit SchemaExport
erstellten finden werden ? Gibt es einen "Modus", den ich das Configuration
Objekt einstellen kann, so wird es die Datenbank für das Vorhandensein der gegebenen Tabellen nicht überprüfen, oder gibt es etwas anderes, das ich tun muss?
Danke für den Tipp. Da ich das HBM nicht selbst schreibe, sondern es durch Fluent NHibernate dynamisch erzeuge, habe ich nicht bemerkt, dass ich einen Fehler in der "GetTableName" -Konvention hatte, der das Attribut 'table' im resultierenden HBM auf gesetzt hat eine leere Zeichenfolge. Meine Hände auf die generierten HBM-Dateien zu bekommen machte das Problem sehr klar und ich konnte es innerhalb einiger Sekunden beheben. Yay! :) –