Сравнение схем - неожиданное исключение, обнаруженное при заполнении исходной модели: ссылка на объект не установлена ​​для объекта экземпляра - PullRequest
0 голосов
/ 01 ноября 2018

Я выполняю сравнение схем в проекте базы данных в Visual Studio 2017, когда я делаю это, я получаю следующее сообщение на вкладке Список ошибок:

Неожиданное исключение, обнаруженное при заполнении исходной модели: объект ссылка не установлена ​​на объект экземпляра.

Я обнаружил этот блог , который, похоже, является той же проблемой, но предлагаемое решение (удаление записи с помощью окна Выбрать целевую схему) не сработало, несмотря на несколько попыток.

Сравнение прекрасно работает (и работает) с тем же проектом и базой данных в Visual Studio 2013, поэтому у меня есть обходной путь, но было бы неплохо узнать, что является причиной проблемы (и оставить VS2013 позади!)

1 Ответ

0 голосов
/ 05 ноября 2018

Я нашел решение для этого; для проектов баз данных в свойствах есть настройка «Целевая платформа» (см. ниже). Я установил это на SQL Server 2017, и сравнение теперь работает.

enter image description here

Требуемая платформа по умолчанию зависит от совместимости базы данных (см. https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level);, в то время как мне потребовался 2017 год, когда я впервые столкнулся с этой проблемой, для повторения (для базы данных с уровнем совместимости 120) требовался SQL Сервер 2014 будет выбран.

Как ни странно, я теперь видел, что простое переключение целевой платформы назад и вперед может решить проблему, например. У меня есть проект базы данных с командами SQL, которых не было в SQL 2014, я выполнил сравнение с целью на 2017 год, и он потерпел неудачу с вышеуказанной ошибкой, запустился с целью на 2014 год и с ошибками (как и следовало ожидать, так как он делает не понимаю, новые функции SQL), переключитесь обратно на цель 2017 года и сравнение теперь работает отлично!

...