NHibernate: воссоздать базу данных с помощью SchemaExport - PullRequest
1 голос
/ 24 мая 2011

У меня вопрос о правильной обработке базы данных.

В моей среде разработки я часто воссоздаю базу данных, используя

_schemaExport.Drop(true, true);
_schemaExport.Create(createResult, true);

(должен отметить, что я использую генератор hilo .) Сразу после повторного создания базы данных иногда не удается сохранить новую сущность из-за исключения "Cannot insert duplicate key..." .

Мой вопрос: Придется ли мне повторно инициализировать фабрику сеансов (и, возможно, даже сеанс), чтобы корректно синхронизироваться с новой базой данных, использующей hilo? Или это может работать так же, как есть?

Любая подсказка приветствуется!

Lg
warappa

1 Ответ

1 голос
/ 24 мая 2011

Я бы сказал, что вам обязательно нужно создать новый сеанс после воссоздания базы данных.Другой вариант - очистить существующую перед повторным созданием БД.

Генератор идентификаторов запустится с нуля после того, как вы восстановите БД.Это может привести к тому, что сгенерированный идентификатор будет идентичным идентификатору другого объекта в ранее существующем сеансе.Таким образом, вы получаете повторяющиеся ошибки ключа.

...