Создание новой миграции со всей структурой таблицы для новой базы данных

У меня есть проект, над которым я работаю. Пока я кодировал его, я создал базу данных на Local SQL lite на моей машине. Теперь мне нужно запустить его в производство, и я не могу заставить миграцию создать что-то, что не является пустым.

Вот моя старая строка подключения:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=helpdesk;Integrated Security=True" providerName="System.Data.SqlClient" />

Я изменил это в это:

<add name="DefaultConnection" connectionString="Server=SQL50;Database=HelpDesk;Trusted_Connection=true;" providerName="System.Data.SqlClient" />

Я пытался из этой темы ( Сбросить Entity-Framework Migrations):

  1. Удалите папку миграций в вашем проекте
  2. Удалите таблицу __MigrationHistory из своей базы данных (может быть, под системными таблицами). Однако это не имеет смысла, поскольку это новая база данных и, следовательно, еще не имеет миграций.

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

public partial class Initial : DbMigration
{
    public override void Up()
    {
    }

    public override void Down()
    {
    }
}

Я нашел эту ссылку об Инициализаторах, как предложил Стив Грин ниже ( http://www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm)

и он предлагает использовать эту строку кода:

Database.SetInitializer(new DropCreateDatabaseAlways<BlogContext>());

В основном метод. Однако у меня нет основного метода или метода, подобного этому вообще.

1 ответ

Обычно это то, что я делаю, если хочу начать с нуля.

  • Сбрось локальную БД. - вы можете сделать резервную копию и т. д.

  • Удалите папку миграций из моего проекта.(Верните в систему контроля версий любые изменения модели, это может иногда вызывать проблемы).

  • Запустите команду Enable-Migrations для моего проекта.(это должно добавить папку миграций).

  • Запустите Add-Migration Initial. (это должен эшафот БД init).

  • Запустите команду Update-Database (или запустите ваше приложение, которое использует DBContext).

Другие вопросы по тегам