Я пытаюсь создать Платформу Объекта 4 основанных на модели на базе данных SQL-сервера 2008 прежней версии. Так как модель будет опубликованной в веб-сервисе, я должен опустить целочисленный столбец под названием NewsletterSubscribed от одного из объектов модели.
После удаления столбца в разработчике EF я получил следующую ошибку компиляции:
Error 59 Error 3023: Problem in mapping fragments starting at line 356:Column Users.NewsletterSubscribed in table Users must be mapped: It has no default value and is not nullable.
C:\Users\Adrian\Documents\Sites\Zeiterfassung\Zeiterfassung\API\V1\EFModel.edmx 357 15 Zeiterfassung
Но столбец, кажется, имеет значение по умолчанию 0 связанных к нему. Я пытался выполнить этот SQL-оператор против базы данных:
ALTER TABLE [dbo].[Users] ADD DEFAULT ((0)) FOR [NewsletterSubscribed]
Но это также перестало работать:
Сообщение 1781, Уровень 16, состояние 1, Строка 3 столбца уже имеют ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ, связанное с ним. Сообщение 1750, Уровень 16, состояние 0, Строка 3 не Могли создать ограничение. Посмотрите предыдущие ошибки.
Так любой столбец не имеет значения по умолчанию (в этом случае, я не уверен, почему я не могу создать один), или Платформа Объекта не видит его. Что продолжается?
Спасибо,
Adrian
Откройте .edmx с помощью XML-редактора Visual Studio, а не с помощью Entity Designer, и добавьте атрибут DefaultValue="0"
к несопоставленному столбцу в SSDL. По некоторым причинам они не генерируются из базы данных.