新的.Net Core 2站点不会重新配置Configuration.GetConnectionString

时间:2017-12-07 19:27:43

标签: c# asp.net-core entity-framework-core asp.net-core-2.0

我正在从一个空的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

4 个答案:

答案 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。