У меня есть строка подключения в appsettings.json в моем проекте API, которую я хочу использовать в моем контексте в моем проекте базы данных.Обычно внедрение зависимостей делает свое дело, однако, когда я запускаю миграции, я получаю эту ошибку:
Невозможно создать объект типа «Контекст».Для различных шаблонов, поддерживаемых во время разработки, см. https://go.microsoft.com/fwlink/?linkid=851728!
Жесткое кодирование строки подключения в контексте решает эту проблему, но не является жизнеспособным решением для меня, так как мне нужно изменить строку подключенияв зависимости от окружающей среды.Пожалуйста, посмотрите мой метод ConfigureServices из проекта API и контекст из проекта базы данных.
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed
// for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
services.AddDbContext<Context>();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
public class Context : DbContext
{
private readonly IOptions<AppSettings> _settings;
public Context(IOptions<AppSettings> settings) : base()
{
_settings = settings;
}
public Context(IOptions<AppSettings> settings, DbContextOptions<Context> options) : base(options)
{
_settings = settings;
}
***DBSets***
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(_settings.Value.DBConnectionString);
}
}