Entity Framework: Столбец должен отображаться, хотя он имеет значение по умолчанию? - PullRequest
8 голосов
/ 19 июня 2010

Я пытаюсь создать модель Entity Framework 4 на основе устаревшей базы данных SQL Server 2008.Поскольку модель будет опубликована в веб-сервисе, мне нужно опустить целочисленный столбец с именем NewsletterSubscribeed в одной из сущностей модели.

После удаления столбца в конструкторе 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 Столбец уже имеет границу DEFAULTк этому.Сообщение 1750, уровень 16, состояние 0, строка 3 Не удалось создать ограничение.См. Предыдущие ошибки.

Таким образом, либо у столбца нет значения по умолчанию (в этом случае я не уверен, почему я не могу его создать), либо Entity Framework его не видит.Что происходит?

Спасибо,

Адриан

1 Ответ

12 голосов
/ 19 июня 2010

Откройте .edmx в XML-редакторе Visual Studio, а не в Entity Designer, и добавьте атрибут DefaultValue="0" в столбец без сопоставления в SSDL.По некоторым причинам они не генерируются из базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...