Tout d'abord, j'essaie d'alimenter ma base de données avec des échantillons de données. J'ai lu que c'est la façon de procéder (en Startup.Configure ) (voir Base de données de semences ASP.NET Core RC2 )
J'utilise ASP.NET Core 2.0 avec les options par défaut.
Comme d'habitude, j'enregistre mon DbContext
en ConfigureServices
. Mais après cela, dans la méthode Startup.Configure, lorsque j'essaie de le résoudre en utilisant GetRequiredService
il renvoie ce message :
System.InvalidOperationException : 'Cannot resolve scoped service 'SGDTP.Infrastructure.Context.SGDTPContext' de Root du fournisseur racine.'
Ma classe de démarrage est ainsi faite :
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
//...
}
}
}
Qu'est-ce que je fais de travers ? Par ailleurs, est-ce le meilleur endroit pour créer des données de semences ?