我试图弄清楚如何使用NHibernate配置与映射来更新表模式,而不是删除和重新创建它们 .
目前我正在使用带有FluentNHibernate的 NHibernate.Tool.hbm2ddl.SchemaExport
obj来为mysql数据库生成数据库模式 . 虽然我可以__000740_是一个很大的问题,每当我在数据库上调用 SchemaExport.Execute
时,它将删除所有表,然后重新创建它们 .
如果我可以让它更新现有的表结构,尽可能保留数据,那会更酷 . 但我真的不想使用商业产品或代码生成器,因为我不喜欢一般的代码生成,而且我不需要这么多,我会考虑付费 . 所以希望任何答案都会记住这些警告 .
1 回答
SchemaUpdate 对象通过在调用
void Execute(bool script, bool doUpdate)
函数时显然生成并执行一系列 SQL UPDATE 语句(以及约束语句)来提供数据库模式更新 . SchemaUpdate类位于NHibernate.Tool.hbm2ddl
命名空间中,可以在Nhibernate.dll文件中找到 .SchemaUpdate在nhibernate 1.0.2工具集指南的第15章中提到,here(第15.1.5节) .
“NHibernate FAQ”(链接现已过期)有一个更完整的示例,说明如何使用SchemaUpdate: