SqlMetal не может генерировать новые ассоциации внешних ключей для определенных таблиц

Моя команда использует SqlMetal для генерации классов базы данных из базы данных SqlServer. Он отлично работает для всех существующих классов и ассоциаций внешних ключей, но отказывается генерировать код для конкретной новой ассоциации внешних ключей, которую мы хотим добавить. Этот ключ - от таблицы аудита до глобальной таблицы событий, в которой указано время создания записи аудита и пользователя, которым она была создана. В системе существует много похожих связей внешних ключей между другими таблицами аудита и этой глобальной таблицей "событий", и SqlMetal генерирует код для этих связей.

Я попытался решить эту проблему с помощью:

  • Сбрасывание и воссоздание таблицы
  • Удаление первичного ключа
  • Создание новой идентичной таблицы с другим именем
  • Удаление всех других полей из таблицы
  • Сброс индексов
  • Выполнение новой сборки базы данных
  • Переименование внешнего ключа

Ничто из перечисленного не решает проблему. Однако SqlMetal правильно генерирует код для сопоставлений внешних ключей из этой таблицы с некоторыми (но не всеми) другими таблицами в системе. Связь между этими двумя таблицами будет генерироваться только тогда, когда я изменил исходный сценарий создания таблицы, чтобы включить в него связь с внешним ключом, а не запускать ее (или новую эквивалентную таблицу) в дальнейшем. К сожалению, нам нужно иметь возможность развернуть это изменение в виде сценария в нашей существующей производственной базе данных, так что это не вариант. Я видел пару статей и постов на форуме, в которых упоминались подобные проблемы, но ни одна из них не дала никакого решения или даже объяснения.

0 ответов

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