Arhn - архитектура программирования

Почему моя автоматическая миграция EF6 не работает?

Я реализую автоматическую миграцию в своем проекте ASP.NET MVC. Миграция работает, когда я вручную запускаю add-migration или update-database.

Однако автоматическая миграция не работает, когда я запускаю проект и устанавливаю конфигурацию AutomaticMigrationsEnabled=true.

Вот мои настройки; Я ожидаю, что всякий раз, когда я что-то меняю в модели, это должно отражаться в моей базе данных каждый раз, когда я запускаю проект.

Конфигурация.cs

введите здесь описание изображения

AutoMigrationEntities.cs

введите здесь описание изображения

Спасибо. Надеюсь, вы можете мне помочь.


Ответы:


1

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

Автоматическая миграция позволяет избежать использования Add-Migration (если только нам это действительно не нужно) и позволяет Code First Migrations автоматически вычислять и применять изменения. нам нужно будет Update-Database, чтобы получить Code First Migrations, чтобы внести изменения в нашу модель в базу данных.

Запустите

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

Команда в консоли диспетчера пакетов обновит базу данных, которая будет отражать изменения базы данных.

Если вы хотите, чтобы обе вещи выполнялись автоматически, см. EF – сначала код – автоматическое обновление базы данных

Вы можете заставить инициализатор MigrateDatabaseToLatestVersion использовать строку подключения, которая использовалась контекстом, который в первую очередь инициировал миграцию. Это делается путем передачи useSuppliedContext: true конструктору MigrateDatabaseToLatestVersion, как показано ниже.

Database.SetInitializer(new MigrateDatabaseToLatestVersion<AutoMigrationEntities,Configuration>(useSuppliedContext: true));
16.02.2021
  • Привет @Rutuja, спасибо за ваш ответ. Да, я понял. Но Database.SetInitializer(new MigrateDatabaseToLatestVersion<AutoMigrationEntities, Configuration>()); должен выполнить перенос ожидающих изменений в моей модели. Я добавил точку останова, и она срабатывает при запуске. Я не уверен, что я пропустил в моей конфигурации. 17.02.2021
  • Вы можете заставить инициализатор MigrateDatabaseToLatestVersion использовать строку подключения, которая использовалась контекстом, который в первую очередь инициировал миграцию. Это делается путем передачи useSuppliedContext: true конструктору MigrateDatabaseToLatestVersion. 17.02.2021
  • Я не применил useSuppliedContext: true. Кажется, миграция работает автоматически при доступе к любой базе данных, установленной на моем AutoMigrationEntities, как эта var genders = await db.Genders.ToListAsync(); Спасибо. 17.02.2021
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..