Как создать миграцию без проблемы «Не найден тип конфигурации миграции в сборке»? - PullRequest
1 голос
/ 01 февраля 2020

Я пытаюсь создать миграцию в базовом веб-приложении ASP. NET, но когда я пытаюсь это сделать, консоль диспетчера пакетов возвращает предупреждение и ошибку:

Предупреждение: «Также установлена ​​версия Entity Framework старше 6.3. Более новые инструменты работают. Используйте« EntityFramework \ Add-Migration »для более старой версии».

Ошибка: «Тип конфигурации миграции не найден в сборка "MyProjectName". (В Visual Studio вы можете использовать команду Enable-Migrations из консоли диспетчера пакетов для добавления конфигурации миграции). "

После проведения некоторых исследований я обнаружил, что распространенной проблемой является то, что по умолчанию проект, выбранный в менеджере пакетов, неверен; но это не мой случай, так как он дает мне только один вариант, и это проект, с которым я работаю. Я также обнаружил, что текущее решение состоит в том, чтобы разрешить миграцию с помощью команды «Enable-Migrations», но когда я пытаюсь это сделать, он выдает мне то же предупреждение и другую ошибку:

error: No context тип был найден в сборке «MyProjectName».

Я также пробовал использовать команду «enable-migraitons» по-другому, «enable-migrations -contexttypename MyDBContextName», но это дает мне еще одну ошибку:

ошибка: тип контекста 'MyDBContextName' не найден в сборке 'MyProjectName'.

Но у меня фактически есть следующий класс:

    public class MyDBContextName: IdentityDbContext<UserModel>
    {
        public MyDBContextName(DbContextOptions<MyDBContextName> options) : base(options)
        { 
        }
    }

И у меня есть это в моем классе запуска / настройки служб:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<MyDBContextName>(options => options.UseSqlServer("DefaultConnection"));

    services.AddIdentity<UserModel, IdentityRole>().AddEntityFrameworkStores<MyDBContextName>().AddDefaultTokenProviders();

    services.AddControllers();
}

Наконец, this - это изображение моих пакетов NuGet:

Любая идея о том, что может быть причиной этих пакетов ошибки? Большое спасибо за ваше время, если вам понадобится дополнительная информация, я предоставлю ее вам, как только увижу ваш запрос. Хорошего дня. (

1 Ответ

1 голос
/ 01 февраля 2020

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

1) Я установил Microsoft.EntityFrameworkCore.Tools

2) Я изменил services.AddDbContext<MyDBContextName>(options => options.UseSqlServer("DefaultConnection")); для services.AddDbContext<MyDBContextName>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

3) Наконец , в моем app.setting. json Я изменил

"connectionStrings": 
{
    "DefaultConnection": "Data Source=MyName;Initial Catalog=PracticaApiSecurity;Integrated Security=True"
},

для

  "connectionStrings": {
    "DefaultConnections": "Data Source=MyName;Initial Catalog=PracticaApiSecurity;Integrated Security=True"
  },

изменил соединение для соединенияS

...