NHibernate SchemaExport erstellt keine Tabellen, wenn "script" false ist

8

Wenn ich meine ersten Schritte mit NHibernate mache, versuche ich, meine Tabellen automatisch aus den hbm-Dateien zu erstellen. Das Datenbank-Back-End ist SQL Server 2008 Developer Edition.

Dies ist der übliche Beispielcode, den ich in NHibernate Tutorials sehe:

%Vor%

Leider funktioniert das nicht. Ich habe show_sql auf "true" gesetzt und keine Anweisung ausgedruckt. Wenn ich den SQL-Profiler betrachte, sehe ich, dass meine Anwendung sich mit der DB verbindet, aber dann nichts tut.

Ich kann das beheben, indem ich den ersten Parameter ("script") in true ändere:

%Vor%

Ich verstehe nicht warum. Die Parameter von SchemaExport sind leider nicht wirklich erklärt (auch nicht der Unterschied zwischen .Create und .Execute), und ich möchte herausfinden, was dieser Parameter bewirkt und warum er nicht benötigt wird, zB bei Verwendung der SQL Compact Edition (das funktioniert auch wenn Skript ist falsch)

    
Michael Stum 03.05.2009, 15:51
quelle

1 Antwort

27

Der SchemaExport ist Teil des Hbm2Ddl-Dienstprogramms, das wirklich von der NHibernate-Funktionalität getrennt ist. Es verwendet nicht "show_sql", das verwendet wird, während NHibernate nur ausgeführt wird.

Um eine Kopie des erstellten Schemas zu erhalten, verwenden Sie .SetOutputFile (Dateiname)

Dies ist die Methode, die ich verwende, wenn ich eine neue Datenbank erstellen möchte. Ich erhalte ein formatiertes Schema in der Datei MyDDL.sql und die Datenbank wird aus dem Schema erstellt:

%Vor%

SchemaExport.Create ist nur eine Verknüpfung zu Schema.Execute mit dem nur true false und formatieren Sie true.

%Vor%     
Maggie 03.05.2009, 19:03
quelle

Tags und Links