2012-02-26 5 views
0

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

Я знаю, что есть опция «Обновить модель из базы данных». Существует ли эквивалент «Обновить базу данных из модели»? Есть ли способ настроить Visual Studio для этого автоматически?

ответ

0

Изменение схемы базы данных не является простой операцией (есть ли переименованный столбец или новый столбец? Может ли старый тип быть преобразован в новый тип?), Который вы легко можете сделать из модели.

EF не изменяет таблицы для вас - это может сделать Drop-Create DB для вас, когда вы его измените. Однако, если вы измените существующую базу данных вручную, чтобы соответствовать модели, EF, похоже, не возражает. Похоже, что они проверяют Hash(Model) = Hash(Tables).

2

Entity Framework 4.3 имеет поддержку первой поддержки кода.

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

This blog explains как Миграции работать и this blog показывает, как вы можете использовать его с существующей базой данных

+0

На данный момент я использую Entity Framework 4 и модель первого развития. Могу ли я зайти слишком далеко, чтобы переключиться? У меня нет данных в моей базе данных - все, что у меня есть, это модель (которая, как ожидается, изменится после того, как мы начнем использовать базу данных). –

+0

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

Смежные вопросы