У меня 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));