2016-01-27 3 views
1

Раньше я был очень хорош в обновлении базы данных, когда мне хотелось создать таблицу в базе данных, я просто использовал для создания модели, а затем командуEntity Framework Code Сначала не читает модель и не создает таблицу в базе данных

обновление базы данных--Verbose

и сущность структура кода сначала берет на себя все остальное, сейчас я искал трудно для обновления базы данных, поскольку она не получает обновляется каждый раз, когда я создаю модель, поэтому я думал, что запуск базы данных с нуля может работать, поэтому я удалил свою таблицу __MigrationHistory из базы данных, удалили папку Migrations, снова включили ее, добавили начальную миграцию, закомментировали, что было в методе up(), и теперь снова обновляем базу данных с помощью той же команды (Update-database -Verbose), но без усиления.

Вопрос в том, почему он не читает модель и не создает новую таблицу в базе данных? Как заставить команду update-database работать снова, потому что раньше это делалось?

+0

Любой шанс, что вы используете DatabaseInitializers? – vendettamit

+0

Да, я использую этот код: 'static HrAndPayroll() { База данных.SetInitializer (null); } ' –

+0

Это правильно! Можете ли вы поделиться выводами '-Verbose' команды' Update-Database'? – vendettamit

ответ

2

После создания новой модели вам необходимо вручную добавить миграцию перед запуском Update-Database, чтобы правильно предупредить вашу базу данных о произошедшем изменении или активировать автоматическую миграцию. Вы можете сделать ручную миграцию, выполнив следующие действия в диспетчере пакетов:

Add-Migration NameOfMigration 

Вы можете включить автоматическую миграцию, выполнив следующие действия в диспетчере пакетов:

Enable-Migrations –EnableAutomaticMigrations 

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

+0

Сэр, я уже попробовал этот, но без усиления, ради аргумента, я снова создал новую модель 'check', добавил в нее некоторые свойства и просто выполнил указанные выше команды, но не получил :(' update-database -Verbose' по-прежнему говоря «нет явных миграций», а также когда «add-migration initial», он создал начальный файл миграции с ** ничего ** внутри метода «Up()», тогда как он должен иметь «CreateTable» («check») sql update в нем. –

+0

Работаете ли вы в многопроектной среде или в одном проекте? – Chase

+0

В принципе, это единственный проект, но доступ к двум базам данных в строке соединения, один по умолчанию один, а другой мой сначала создается для кода инфраструктуры сущности, а именно HrAndPayroll, но я также указываю «имя_контекстного имени» как HrAndPayroll при одновременном переносе, но все равно никаких изменений. –

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