EF 4.1 Code First - добавить столбец

У меня уже установлена ​​моя база данных, я хочу добавить новое поле в модель, новый столбец в таблицу, есть ли способ сделать это, не теряя всех моих данных? Обычно, если вы удаляете БД, он автоматически воссоздает все, но я не хочу потерять данные. Я использую SQL Server 2008 в качестве базы данных.

Ответ 1

Вам нужно будет использовать EF Migrations, чтобы добавить новый столбец в вашу базу данных. Подробнее об EF Migrations здесь и здесь.

Ответ 2

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

Например, одна из собственных ошибок EF Code First даже указывает ручное обновление как лучший вариант:

Модель, поддерживающая "контекст контекста", изменилась с момента создания базы данных. Либо вручную удалите/обновите базу данных, либо вызовите Database SetInitializer с экземпляром IDatabaseInitializer. Например, стратегия DropCreateDatabaseIfModelChanges автоматически удалит и воссоздает базу данных и, возможно, запустит ее новыми данными.