Я создаю новое приложение, которое использует 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 ....,
Тем не менее, есть нюгет, и я могу получить доступ к ConfigurationManager в ContextFactory (не во время разработки) без проблем при запуске самого приложения. Похоже, что основные инструменты EF не ищут зависимости сборки модели ...
Есть что-то, чего мне не хватает? Может быть, невозможно использовать ConfigurationManager в фабрике контекста DesignTime?