Атрибут обновления NHibernate и hbm2dll

Я использую NHibernate с базой данных Sdf. В моем файле hibernate.cfg.xml я установил:

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

Но это, похоже, вообще не работает. Атрибут «Обновление» должен заставить NHibernate генерировать отсутствующие таблицы и столбцы во время запуска приложения, но этого не происходит.

Если я хочу создать отсутствующие таблицы, я должен установить для свойства hbm2dll.auto значение «создать», что для меня не вариант, поскольку он заранее удаляет существующий контент базы данных.

У меня возникла такая же проблема с проблемой PostgreSql. Я что-то упускаю?


person mgamer    schedule 31.08.2009    source источник


Ответы (2)


Только что получил ту же проблему. Я изменил способ определения свойства. Вместо:

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

Я использовал:

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

Тогда это сработало :)

person TocToc    schedule 03.05.2012

Насколько я помню, я решил проблему, используя:

new SchemaUpdate(_cfg);

Пожалуйста, прочтите SchemaUpdate в документации NHibernate.

В качестве альтернативы вы можете попробовать использовать Fluent NHibernate, который определенно будет работать так, как вы ожидаете, и даже лучше!

person mgamer    schedule 09.04.2010
comment
Fluent NHibernate не является альтернативой SchemaUpdate - person Mauricio Scheffer; 27.05.2010