.Net Core 无法从 appsettings.json 读取连接字符串



我目前正在.net core 2.0中创建Web API,但我根本无法让我的连接字符串工作。

我已经将我的连接字符串放入appsettings.json并在启动时加载它.cs

Appsettings.json

{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"DatabaseConnection": "Data Source=VMDEVSLN-EOE\SQLEXPRESS;Initial Catalog=EmployeeDB;Integrated Security=True"
}
}
}

启动.cs

public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
var connection = Configuration.GetConnectionString("DatabaseConnection");
services.AddDbContext<DatabaseContext>(options => options.UseSqlServer(connection));
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc();
}
}

数据库上下文

public class DatabaseContext : DbContext
{
public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options)
{
}
public DbSet<CustomerTB> CustomerTB { get; set; }
}

我相信问题出在我的appsettings.json的某个地方,但我只是找不到它

您的ConnectionStrings部分位于Logging部分中,我不知道这是否是您的意思,但无论如何您可以像这样访问DatabaseConnection

var connection = Configuration["Logging:ConnectionStrings:DatabaseConnection"];

在 asp.net 核心 1.x 中,您应该通过ConfigurationBuilder读取设置。在Startup.cs

public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}

在核心 2 asp.net 中,这可能是相同的方法。

最新更新