Прежде всего, я пытаюсь засеять мою базу данных образцами данных. Я прочитал, что это способ сделать это (в Startup.Configure) (см. База данных семантики Core RC2 ASP.NET)
Я использую ASP.NET Core 2.0 с параметрами по умолчанию.
Как обычно, я регистрирую DbContext
в ConfigureServices
.
Но после этого в методе Startup.Configure, когда я пытаюсь разрешить его с помощью GetRequiredService
, он выдает это сообщение:
System.InvalidOperationException: "Не удается разрешить работу с областью действия" SGDTP.Infrastructure.Context.SGDTPContext" от root провайдер.
Мой класс запуска такой:
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
//...
}
}
}
Что я делаю неправильно? Кроме того, это лучшее место для создания данных семян?