Может ли Entity Framework 4.1 конструктор «обновлять модель из базы данных» только для выбранных объектов? - PullRequest
7 голосов
/ 10 июня 2011

Ситуация: Иногда схема базы данных - это не то, что вы считаете идеальным представлением информации системы, и вы не сможете ее изменить. Мы использовали Entity Framework для создания более красивой концептуальной модели для кодирования в подобных ситуациях. Это означает, что нужно обновить модель из базы данных, а затем изменить ее самостоятельно, либо через конструктор, либо через файл .edmx напрямую с помощью текстового редактора.

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

Вопрос: Есть ли способ получить Entity Framework для обновления только выбранных объектов из базы данных? Или можно сказать, чтобы при добавлении новой сущности оставалась одна модель?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 10 июня 2011

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

Конструктор работает как любой другой в Visual Studio - касание сгенерированного кода (модели хранилища) не поддерживается. Как только вы это сделаете, вы больше не сможете использовать Обновление из базы данных .

Существует коммерческий инструмент , который, вероятно, поддерживает лучшее обновление модели - вы можете попробовать пробную версию.

1 голос
/ 10 июня 2011

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

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

...