Предотвратить EF Code First от регенерации моей производственной базы данных - PullRequest
1 голос
/ 23 января 2012

Когда я впервые создавал сайт, я использовал EF4 Code First (без миграций). Теперь мой клиент спросил меня о некоторых новых функциях, которые потребовали некоторого рефакторинга моей базы кода. Частью рефакторинга было перемещение моей модели в отдельную сборку (что должно было быть сделано с самого начала, но я не знал в то время). Так или иначе, теперь, когда вся моя база кода была изменена, и почти все имена сборок и пространства имен также были изменены, когда я развернул сайт в промежуточной среде, EF регенерировал тестовую базу данных.

Итак, мой вопрос Есть ли что-нибудь, что можно было бы сделать, чтобы избежать этого? Я еще не использовал миграцию, но это жизнеспособное решение?

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

1 Ответ

2 голосов
/ 23 января 2012

Если вы уверены, что не изменили ни одной таблицы, попробуйте добавить:

Database.SetInitializer<YourContext>(null);

к инициализации вашего приложения.Он удалит любую стратегию инициализации из вашего приложения и больше не будет создавать базу данных.

...