NHibernate: воссоздать базу данных с помощью SchemaExport
У меня есть вопрос о правильной обработке базы данных.
В моей среде разработки я часто воссоздаю базу данных, используя
_schemaExport.Drop(true, true);
_schemaExport.Create(createResult, true);
(Я должен отметить, что я использую генератор hilo.) Сразу после того, как я воссоздаю базу данных, иногда сохранение новой сущности не удается из-за " Cannot insert duplicate key...
исключение
Мой вопрос: придется ли мне повторно инициализировать фабрику сеансов (и, возможно, даже сеанс), чтобы правильно синхронизироваться с новой базой данных, использующей hilo? Или это может работать так, как есть?
Любая подсказка приветствуется!
Lg
warappa
1 ответ
Я бы сказал, что вам обязательно нужно создать новый сеанс после воссоздания базы данных. Другой вариант - очистить существующий перед воссозданием БД.
Генератор идентификаторов запустится с нуля после того, как вы восстановите БД. Это может привести к тому, что сгенерированный идентификатор будет идентичным идентификатору другого объекта в ранее существующем сеансе. Таким образом, вы получаете дубликаты ключевых ошибок.