为什么我的 ASP.NET Core SQL Server Express 连接字符串中出现错误?



我最近启动了一个新的 ASP.NET Core Web应用程序,我想将其连接到我的本地SQLExpress数据库。 我一直在关注文档,但是当它尝试在以下位置读取我的连接字符串时,我收到"值不能为空"的错误

options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")

这是我到目前为止的代码。 在Startup.cs我有以下设置:

using Microsoft.AspNetCore.Builder;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Blondie.CoreApiSql.Models;
using Microsoft.Extensions.Configuration;
namespace Blondie.CoreApiSql
{
public class Startup
{
private readonly IConfiguration configuration;
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DatabaseContext>
(options => options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
}
}
}

运行应用程序时,将在以下行触发错误:

services.AddDbContext<DatabaseContext> (options => options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));

我已经在appsettings.json中定义了连接字符串,如文档中所述,如下所示:

{
"ConnectionStrings": {
"DefaultConnection": "Data Source=DESKTOP-PC009\SQLEXPRESS;Database=Senua;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
}
}

我已经创建了Senua数据库,其中包含一个没有数据的表。 我的数据库使用 Windows 身份验证。

我用我的单个表以以下方式定义了我的数据库上下文。

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

据我了解,仅当您未能在appsettings.json文件中定义连接字符串但我已经添加了它时,此错误通常才会明显,以前有人遇到过这个问题吗?

定义一个值并将其分配给配置其IConfiguration并需要一个值。 在构造函数中定义依赖关系注入

public Startup(IConfiguration configuration)
{
this.configuration = configuration;
}

最新更新