Я создаю новое приложение, использующее EF Core 2 с миграциями. Само приложение - это .NET Framework, но модель находится в отдельной сборке .net core 2.0. Все работает нормально, я определил фабрику контекста времени разработки:
public class MyDesignTimeContextFactory : IDesignTimeDbContextFactory<MyContext>
{
public MyContext CreateDbContext(string[] args)
{
return new MyContext("Server=localhost\\SQLEXPRESS;Database=DBName;User ID=Test;Password=0000;");
}
}
И я могу генерировать миграции и применять / возвращать их в БД. Теперь, если я заменю жестко закодированную строку подключения вызовом файла конфигурации
return new MyContext(System.Configuration.ConfigurationManager.AppSettings.Get("ConnectionString");
У меня ошибка при вызове инструментов EF Core:
Add-Migration -Project MyProject.Model -Name Initialization
System.IO.FileNotFoundException: Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=4.0.1.0 ....,
Однако nuget есть, и я могу получить доступ к ConfigurationManager в ContextFactory (а не в среде разработки) без проблем при запуске самого приложения. Похоже, основные инструменты EF не ищут зависимости сборки модели ...
Что-то мне не хватает? Может быть, нельзя использовать ConfigurationManager в фабрике контекста DesignTime?