Ошибка запуска обновления базы данных entityframeworkcore 2 - PullRequest
0 голосов
/ 30 апреля 2018

У меня EntityFrameworkCore 2.0.2 установлено в библиотеке классов в решении, содержащем AspNet Core WebApi.

У меня установлены следующие пакеты в проекте;

Microsoft.AspNetCore.Identity.EntityFrameworkCore - 2.0.2

Microsoft.EntityFrameworkCore - 2.0.2

Microsoft.EntityFrameworkCore.SqlServer - 2.0.2

Microsoft.Extensions.Identity.Stores - 2.0.2

System.Data.SqlClient - 4.4.3

Мой проект библиотеки классов вызывает контекст следующим образом;

 public class MyContextFactory : IDesignTimeDbContextFactory<MyDataContext>
    {
        public MyContextFactory()
        {
        }

        public MyDataContext CreateDbContext(string[] args)
        {
            var builder = new DbContextOptionsBuilder<MyDataContext>();
            builder.UseSqlServer(DbGlobals.DevDatabase);

            return new MyDataContext(builder.Options);
        }
    }

При попытке запустить команду update-database из консоли диспетчера пакетов появляется следующая ошибка.

Исключение при запуске приложения: System.IO.FileNotFoundException: может не найти файл 'C: \ Users \ матовое \ Source \ Repos \ Проект \ Services.WebApi \ Bin \ Debug \ netcoreapp2.0 \ ef.xml'

.

теперь это происходит, когда я пытаюсь также add-migration.

Я не могу найти какие-либо подробности в ef.xml и как он генерируется? Может кто-нибудь сказать мне, что здесь происходит.

Если я запускаю add-migration, я получаю сгенерированную миграцию, но затем получаю ошибку;

Произошла ошибка при вызове метода «BuildWebHost» в классе «Программа». Продолжая без поставщика услуг приложения. Ошибка: не удалось найти файл 'C:\Users\matt\Source\Repos\project\Services.WebApi\bin\Debug\netcoreapp2.0\ef.xml'.

Я попытался очистить проект, перекомпилировать (ошибок нет), я также посмотрел в указанной папке, и файл не существует. Также (из поиска файлов) он не был сгенерирован в другом месте?

Миграции уже работали нормально?

По запросу мой BuildwebHost есть;

 public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();

и я добавляю EF в мой файл Startup.cs;

        services.AddDbContext<MyDataContext>(
            options => options
            .UseSqlServer(DbGlobals.DevDatabase));

1 Ответ

0 голосов
/ 30 апреля 2018

Команды, которые вы используете update-database и add-migration, не похожи на поддерживаемые команды Entity Framework Core CLI:

  • dotnet ef add migrations <migration-name>
  • dotnet ef database update

Также проверьте этот вопрос SO для получения дополнительной информации: Entity Framework Core 2.0 add-migration ничего не генерирует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...