我正在从一个空的ASP.NET Core 2模板创建一个新网站,并按照Microsoft Entity Framework Tutorial来帮助我进行设置。有一点,你有添加代码:
services.AddDbContext<SchoolContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
ConfigureServices()
的{{1}}方法。我做了这个但是在我的项目中,Visual Studio在Startup.cs
Configuration
下给了我一点红线
我以为我错过了Configuraiton.GetConnectionString
语句甚至包,但Visual Studio 2017快速操作不会识别要使用的using
语句,而我确实拥有using
语句安装包所以我应该有所有的包。
我错过了什么让Microsoft.AspNetCore.All
无法识别?
编辑:错误是:
当前上下文中不存在名称“配置”
Configuration
答案 0 :(得分:11)
您需要通过DI获取IConfiguration
个对象
向IConfiguration
的构造函数添加Startup
参数,并将其分配给Configuration
属性:
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
我很惊讶你怎么没有它,因为它是模板的一部分。
答案 1 :(得分:2)
1#安装NuGet软件包:Microsoft.Extensions.Configuration
2#添加:使用Microsoft.Extensions.Configuration;
3#请注意,我已在代码中添加以下行: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();
});
}
}
答案 2 :(得分:0)
不要忘记添加public IConfiguration Configuration { get; }
答案 3 :(得分:0)
有时您会添加错误的名称空间(如AutoMapper.Configuration)来代替正确的Microsoft.Extensions.Configuration。