NHibernate: воссоздать базу данных с помощью SchemaExport

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

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

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

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

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

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

Lg
warappa

1 ответ

Решение

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

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

Другие вопросы по тегам