Как обновить только одну таблицу для модели из базы данных с помощью Entity Framework?
у меня есть модель, сгенерированная из БД с Entity Framework. Когда у меня есть какие-либо изменения в базе данных, я обновляю модель из базы данных, чтобы получить изменение в модели. Но это обновление применяется ко всем сущностям (таблицам), включенным в модель.
теперь я добавляю новый столбец в таблицу Tab1. Я не хочу, чтобы обновить модель из базы данных, как некоторые другие изменения, которые я не хочу включать в модель. Я могу добавить новое свойство в model for entity Tab1 вручную. затем это вызвало ошибку отображения.
поэтому мне нужно обновить Model.Store
для таблицы, чтобы включить новый столбец. Это означает, что я хочу обновить модель только для Tab1
.
Как я могу это сделать?
3 ответов
файл EDMX представляет собой XML-файл, который представляет собой комбинацию из 3 различных частей,которые составляют все это. Если вы щелкните правой кнопкой мыши на файле EDMX и выберите "Открыть с помощью... XML Editor " вы увидите 3 различных раздела:
<edmx:ConceptualModels>
<edmx:StorageModels>
<edmx:Mappings>
эти разделы можно редактировать вручную, на свой страх и риск! :-)
Таким образом, вы можете изменить только то, что вам нужно.
обратите внимание, что это также возможно чтобы создать CSDL, SSDL и MSL-файлы, а не внедрять их в двоичный файл, измените свойство "обработка мета-артефактов" вашей модели на "копировать в выходной каталог".
Если вы не хотите делать это вручную, есть Huagati DBML / EDMX инструмент, это бесплатно и вы можете скачать его с официальный сайт компании huagati или галерея visual studio, который является плагином Visual Studio, который позволяет выбрать, какие изменения это нужно сделать.
Я использую следующий (условный) трюк. Это можно сделать только тогда, когда таблица не зависит от таблицы, которую вы хотите обновить.
- удалить таблицу, которая должна быть обновлена.
- Правой Кнопкой Мыши на модели и выберите 'обновить модель из базы данных. Таблица будет показана на вкладке "добавить". Выберите эту таблицу и обновите модель.
Примечание : Если другие существующие таблицы имеют изменения в них, EF обновит эти изменения тоже.
есть способ сделать это автоматически.
щелкните правой кнопкой мыши файл edmx > обновить модель из базы данных > вкладка обновить > таблицы > выберите таблицу (вы хотите обновить) и нажмите Готово, вот и все.