Как добавить свойство к модели через контекст базы данных? - PullRequest
0 голосов
/ 03 мая 2018

сильный текст У меня есть автоматически сгенерированное поле внутри таблицы базы данных, но это поле не добавлено в модель. Эта модель используется совместно со стандартными и сетевыми проектами .net. Тем не менее, в .net Framework мне нужно добавить это поле в модель для вставки или обновления. Если нет, я получу DbUpdateConcurrencyException . В базовой версии проблема не возникает, и она может работать без указания поля, с другой стороны, наличие поля на этой стороне создает проблему при обновлении.

Поле является полем идентификации, а атрибут настроен следующим образом [DatabaseGenerated (DatabaseGeneratedOption.Identity)]

Если это DatabaseGeneratedOption.computed или удалено после триггеров исключений DbUpdateConcurrencyException

Если он сопоставлен с DatabaseGeneratedOption.None возникает следующая ошибка Невозможно вставить явное значение для столбца идентификации в таблице «Проверка», если для параметра IDENTITY_INSERT установлено значение OFF

Может ли кто-нибудь сказать мне, как программно добавить поле в контексте базы данных, чтобы я мог удалить свойство из модели, или могут быть какие-то обходные пути?

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Я только что изменил атрибут модели на DatabaseGeneratedOption.com, указанный для этого свойства, и на стороне .Net Framework я переопределил этот атрибут с помощью Identity в DatabaseContext

0 голосов
/ 03 мая 2018

Если вы применяете схему в первую очередь, вы можете выполнить следующие шаги:

1. Попробуйте создать в таблице столбец первичного ключа без идентификатора.

2.Удалить модель сущности из EDMX.

3. Вернитесь и установите для идентификатора PK значение true.

4. Обновите EDMX, добавив объект.

...