问题
var cfg = new Configuration();
cfg.Configure();
cfg.AddAssembly(typeof(<ClassName>).Assembly);
new SchemaExport(cfg).Execute(false, true, false, false);
The above piece of code is supposed to create a database Table with name <ClassName>
.
But it is not creating.
回答1:
Your most likely problems:
- using SQLite with connection.release_mode=on_close
- no mapping files in the specified assembly
- mapping files have not been added to the assembly as an Embedded Resource
- mapping files are not named *.hbm.xml
- some table or column names should be quoted for SQL (this would be throwing an exception)
回答2:
The first parameter to Execute() must be true.
new SchemaExport(cfg).Execute(**true**, true, false, false);
I don't know why, but there you have it.
来源:https://stackoverflow.com/questions/2311006/nhibernate-does-not-create-tables