Работа на серверной части .NETCore MVC, использующей EntityFramework.
Проект «Решение как услуга», проект EntityFramework и проект API (MVC). Проект API является точкой зависти / запуска.
Это существующий проект, и был начальный файл миграции, который я использовал для настройки базы данных из командной строки, используя: dotnet ef database update
.
Теперь я добавил новую модель в проект EntityFramework и добавил соответствующий public DbSet
в класс Context. Сейчас я пытаюсь сгенерировать файл миграции обновления для него, чтобы я мог обновить базу данных.
Использование dotnet ef migrations add migration_002
выдало ошибку:
Невозможно создать объект типа 'StartNetContext'. Добавить
реализация 'IDesignTimeDbContextFactory' для
проект или см. https://go.microsoft.com/fwlink/?linkid=851728 для
дополнительные шаблоны, поддерживаемые во время разработки.
Поиск найденных сообщений и блогов, связанных с обновлениями с EF 1 -> 2 ... в данном случае не подходит. Или указание на проблемы при создании начальной миграции, когда также происходит начальное заполнение ... опять же, также не подходит в этом случае. Когда я добавляю опцию -v, я получаю немного больше информации:
Microsoft.EntityFrameworkCore.Design.OperationException: Невозможно
создать объект типа «StartNetContext». Добавить реализацию
'IDesignTimeDbContextFactory' в проект или посмотрите
https://go.microsoft.com/fwlink/?linkid=851728 для дополнительных шаблонов
поддерживается во время разработки. ---> System.MissingMethodException: нет
Конструктор без параметров определен для этого объекта.
Тьфу. Какие? Зачем мне это? Поиск, который указывает на перестройку, как настроен запуск ... определенно удостоверившись, что. AddDbContext
называется - что это ...
Мне кажется, что я хожу по кругу ... это должно сработать ... кто-то создал начальную миграцию, поэтому она должна была сработать, верно?
ПРИМЕЧАНИЕ. Я работаю на Mac, поэтому консоль диспетчера пакетов не используется, поэтому выбор целевых проектов и т. Д. Также не является решением. Все это должно быть сделано прямо из CLI.