У меня уже установлена моя база данных, я хочу добавить новое поле в модель, новый столбец в таблицу, есть ли способ сделать это, не теряя всех моих данных? Обычно, если вы удаляете БД, он автоматически воссоздает все, но я не хочу потерять данные. Я использую SQL Server 2008 в качестве базы данных.
EF 4.1 Code First - добавить столбец
Ответ 1
Вам нужно будет использовать EF Migrations, чтобы добавить новый столбец в вашу базу данных. Подробнее об EF Migrations здесь и здесь.
Ответ 2
Если вы сначала используете код, я всегда добавлял столбец в базу данных вручную в таких ситуациях. К сожалению, нет простого способа автоматизировать инкрементные обновления модели с помощью Code First.
Например, одна из собственных ошибок EF Code First даже указывает ручное обновление как лучший вариант:
Модель, поддерживающая "контекст контекста", изменилась с момента создания базы данных. Либо вручную удалите/обновите базу данных, либо вызовите Database SetInitializer с экземпляром IDatabaseInitializer. Например, стратегия DropCreateDatabaseIfModelChanges автоматически удалит и воссоздает базу данных и, возможно, запустит ее новыми данными.