NHibernate和hbm2dll更新属性

NHibernate和hbm2dll更新属性,nhibernate,sdf,hbm2ddl,Nhibernate,Sdf,Hbm2ddl,我正在使用NHibernate和Sdf数据库。在我的hibernate.cfg.xml文件中,我设置了: <property name="hbm2ddl.auto" value="update"/> 但这似乎根本不起作用。“Update”属性应该使NHibernate在应用程序启动期间生成缺少的表和列,但不会发生这种情况 如果我想删除缺少的表,我必须将hbm2dll.auto属性设置为“create”,这对我来说不是一个选项,因为它会事先删除现有的数据库内容 我在Postgre

我正在使用NHibernate和Sdf数据库。在我的hibernate.cfg.xml文件中,我设置了:

<property name="hbm2ddl.auto" value="update"/>

但这似乎根本不起作用。“Update”属性应该使NHibernate在应用程序启动期间生成缺少的表和列,但不会发生这种情况

如果我想删除缺少的表,我必须将hbm2dll.auto属性设置为“create”,这对我来说不是一个选项,因为它会事先删除现有的数据库内容


我在PostgreSql问题上也遇到了同样的问题。我遗漏了什么吗?

据我记忆所及,我通过以下方法解决了问题:

new SchemaUpdate(_cfg);
请阅读NHibernate文档中的SchemaUpdate


您也可以尝试使用Fluent NHibernate,它一定会按照您的期望工作,甚至更好

刚刚收到同样的问题。我更改了属性的定义方式。而不是:

<property name="hbm2ddl.auto" value="update"/>

我用过:

<property name="hbm2ddl.auto">update</property>
更新

然后它成功了:)

Fluent NHibernate不是SchemaUpdate的替代品