Je suis en train de créer un nouveau site Web à partir d'un modèle ASP.NET Core 2 vide et de suivre le Microsoft Entity Framework Tutorial pour m'aider à obtenir la configuration. À un moment donné, vous avez ajouté le code:
services.AddDbContext<SchoolContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
À la méthode ConfigureServices()
de Startup.cs
. Je l'ai fait, mais dans mon projet, Visual Studio m'a donné cette petite ligne rouge sous Configuration
dans le Configuraiton.GetConnectionString
J'avais pensé qu'il me manquait une instruction using
ou même un package, mais les actions rapides de Visual Studio 2017 n'identifient pas une instruction using
à utiliser et j'ai le Microsoft.AspNetCore.All
package installé donc je devrais avoir tous les packages.
Qu'est-ce qui me manque qui rend le Configuration
non reconnu?
Edit: L'erreur est:
Le nom 'Configuration' n'existe pas dans le contexte actuel
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<CollectionContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}
Vous devez obtenir l'objet IConfiguration
via DI.
Ajoutez un argument IConfiguration
au constructeur de votre Startup
et affectez-le à une propriété Configuration
:
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
Je suis surpris de voir que vous ne l'avez pas, car cela fait partie du modèle.
1 # installez le package NuGet: Microsoft.Extensions.Configuration
2 # add: utilisation de Microsoft.Extensions.Configuration;
3 # Notez que j'ai ajouté cette ligne dans le code: public IConfiguration Configuration { get; }
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}