Любой способ сохранить атрибуты свойств в классах сущностей при обновлении модели из базы данных с помощью конструктора.

Использование ASP.NET 4 и Entity framework 4.3.1 через ObjectContext.

Каждый раз, когда я обновляю/обновляю модель из базы данных, любые атрибуты свойств, установленные, например, [AllowHtml] для свойства в одном или нескольких классах сущностей, исчезают, поскольку процедура полностью перестраивает все классы для модели сущностей.

Кроме того, при попытке добавить простое скалярное свойство через конструктор сопоставления таблиц не создаются автоматически, и я не могу их создать, оставляя мне единственный вариант: сначала добавить это свойство в базовую базу данных, а затем запустить мастер обновления/обновления модели. Можно ли добавить сопоставления таблиц? Если нет, то почему эта функция вообще включена в конструктор.


person LaserBeak    schedule 01.07.2012    source источник


Ответы (1)


Первое правило автоматически сгенерированного кода: вы не должны изменять его, потому что ваша модификация будет потеряна каждый раз, когда дизайнер снова запускает автоматическую генерацию - автоматическая генерация не может обнаружить ваши изменения. Он отвечает за создание правильного кода для вашей текущей модели, и поэтому он всегда будет создавать весь код с нуля и удалять старый код.

Сопоставления таблиц не создаются автоматически. Designer поддерживает два подхода к моделированию.

  • Сначала база данных — вы изменяете свою базу данных и запускаете модель обновления из базы данных, чтобы получить модификации и связанные сопоставления в дизайнере.
  • Сначала модель — вы изменяете свою модель и запускаете «Создать базу данных из модели», чтобы получить сценарий SQL для создания вашей базы данных.

Вы должны использовать только один подход.

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

person Ladislav Mrnka    schedule 01.07.2012