【发布时间】:2017-09-05 22:01:16
【问题描述】:
首先,我正在尝试使用示例数据为我的数据库播种。我已经读到这是这样做的方法(在 Startup.Configure 中)(请参阅ASP.NET Core RC2 Seed Database)
我正在使用带有默认选项的 ASP.NET Core 2.0。
像往常一样,我在ConfigureServices 中注册了我的DbContext。
但在那之后,在 Startup.Configure 方法中,当我尝试使用 GetRequiredService 解决它时,它会抛出以下消息:
System.InvalidOperationException: '无法解析范围服务 'SGDTP.Infrastructure.Context.SGDTPContext' 从根 提供者。'
我的 Startup 类是这样的:
public abstract class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<SGDTPContext>(options => options.UseInMemoryDatabase("MyDatabase"))
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc();
SeedDatabase(app);
}
private static void SeedDatabase(IApplicationBuilder app)
{
using (var context = app.ApplicationServices.GetRequiredService<SGDTPContext>())
{
// Seed the Database
//...
}
}
}
我做错了什么? 此外,这是创建种子数据的最佳场所吗?
【问题讨论】:
标签: c# asp.net .net entity-framework asp.net-core