Подтвердить что ты не робот

Как обновить только одну таблицу для модели из базы данных с помощью Entity Framework?

У меня есть модель, сгенерированная из db с Entity Framework. Когда у меня есть какие-либо изменения в базе данных, я обновляю модель из базы данных, чтобы получить изменение в модели. Но это обновление применяется ко всем сущностям (таблицам), включенным в модель.

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

Поэтому мне нужно обновить Model.Store, чтобы таблица включала новый столбец. Это означает, что я хочу обновить модель только для Tab1.

Как я могу это сделать?

4b9b3361

Ответ 1

Файл EDMX представляет собой XML файл, который представляет собой комбинацию из трех разных частей, которые составляют все. Если вы щелкните правой кнопкой мыши по файлу EDMX и выберите "Открыть с помощью... Редактора XML", вы увидите 3 разных раздела:

  • <edmx:ConceptualModels>
  • <edmx:StorageModels>
  • <edmx:Mappings>

Эти разделы можно редактировать вручную, на свой страх и риск!:-)
Таким образом вы можете изменить только то, что вам нужно.

Обратите внимание, что также возможно генерировать файлы CSDL, SSDL и MSL, а не добавлять их в двоичный файл, изменив свойство "Meta Artifact Processing" вашей модели на "Копировать в выходной каталог".

Если вы не хотите делать это вручную, инструмент Huagati DBML/EDMX, он бесплатный, и вы можете скачать его с официальный сайт huagati или визуальная галерея студии, которая является Плагин Visual Studio, который позволяет вам выбрать, какие изменения необходимо выполнить.

Ответ 2

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

  • Удалить таблицу, которая должна быть обновлена.
  • Щелкните правой кнопкой мыши на модели и выберите "Обновить модель из базы данных". Таблица будет показана на вкладке "Добавить". Выберите эту таблицу и обновите модель.

Меры предосторожности. Если в других существующих таблицах есть изменения, EF также обновит эти изменения.

Ответ 3

Существует способ сделать это автоматически.

щелкните правой кнопкой мыши файл edmx > модель обновления из базы данных > вкладка "Обновить" > "Таблицы" > выберите таблицу (вы хотите обновить) и нажмите "Готово".