gpt4 book ai didi

c# - 尝试获取用于在 ASP.NET Core MVC 中播种数据的注入(inject)服务

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:02 25 4
gpt4 key购买 nike

在 ConfigureServices 中我说

   services.AddDbContext<PwdrsDbContext>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("PwdrsDbConnection"));
});

RegisterServices(services);

在配置中我说

 SeedData.SeedDatabase(app);

在我说的静态种子方法中

public class SeedData
{
public static void SeedDatabase(IApplicationBuilder app)
{
PwdrsDbContext context = app.ApplicationServices.GetService<PwdrsDbContext>();
}
}

当我运行时它说

无法从根提供程序解析作用域服务“Pwdrs.Infra.Data.Context.PwdrsDbContext”

我需要 dbcontext 来播种数据,但我缺少什么?

最佳答案

您需要将 ConfigureServices 方法中的服务分别注入(inject)到 Configure 方法中:

public void Configure(
IApplicationBuilder app,
IServiceProvider services) // <- magic here
{
// ...
SeedData.SeedDatabase(services);
}

public class SeedData
{
public static void SeedDatabase(IServiceProvider services)
{
PwdrsDbContext context = services.GetRequiredService<PwdrsDbContext>();
}
}

关于c# - 尝试获取用于在 ASP.NET Core MVC 中播种数据的注入(inject)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57434969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com