Отображение для объекта базы данных 'create' не выполняется, но выполняется 'drop'? - PullRequest
0 голосов
/ 12 мая 2011

У меня есть существующее сопоставление NHibernate 2.1.2.4000, в котором используется синтаксис сопоставления:

<database-object>
    <create>
      CREATE VIEW View_Register AS ... (truncated for example)
    </create>
    <drop>
      DROP VIEW View_Register
    </drop>
</database-object>

Когда создается схема базы данных, я использую:

new SchemaExport(_configuration).Execute(true, true, false, aSession.Connection, tw);

Третий параметр вописанный выше метод - dropOnly, который, очевидно, имеет значение false.

В прошлом моя схема создавалась, и 'View_Register' создавался успешно.Теперь я перезапускаю генерацию схемы, и DROP вызывается в начале генерации схемы, но CREATE никогда не вызывается.Я подтвердил это с несколькими профилировщиками SQL, включая профилировщик NH.

Использование явных объявлений диалектов, похоже, тоже не работает:

<dialect-scope name="NHibernate.Dialect.MsSql2000Dialect"/>
<dialect-scope name="NHibernate.Dialect.MsSql2005Dialect"/>
<dialect-scope name="NHibernate.Dialect.MsSql2008Dialect"/>

Есть идеи у людей?

Спасибо,

Дэвид

1 Ответ

2 голосов
/ 12 мая 2011

Я полный идиот ...

Мое отображение / представление View_Register было полностью в порядке и не было моей проблемой.

Не удалось создать другое представление ДО ПЕРЕД View_Register из-за переименованной таблицы. Очевидно, что последующие вызовы объект-база данных / создание прерываются для любого исключения ADO, созданного предыдущим созданием.

Приятно знать, но я чувствую себя глупо, отвечая на свой вопрос!

...