我正在开发一个使用 Entity Framework Core 8 并面向 SQL Server 2022(Express Edition)的 .NET 8 应用程序。尽管我的 appsettings.json 中有正确的连接字符串,但我遇到了 InvalidOperationException,指出 ConnectionString 属性尚未初始化。当我尝试在包管理器控制台中运行 Update-Database 时,发生错误。
这是错误消息:
System.InvalidOperationException: The ConnectionString property has not been initialized.
[...stack trace...]
我的 appsettings.json 的相关部分如下所示:
"ConnectionStrings": {
"DefaultConnexion": "Server=DESKTOP-39TI737\\sqlexpress;Database=Mango_Coupon;Trusted_Connection=True;TrustServerCertificate=True"
}
在我的 Program.cs 中(因为我使用的是 .NET 8),DbContext 的配置如下:
builder.Services.AddDbContext<AppDbContext>(options =>
{
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnexion"));
});
我已验证 SQL Server 正在运行并且可以通过 SSMS 进行访问。该问题似乎特定于应用程序尝试访问数据库。
任何有关可能导致此问题的原因或如何解决此问题的见解将不胜感激。
我验证连接字符串是否正确命名为“DefaultConnexion”并且格式正确。
查看了 DbContext 配置
我确认 SQL Server 实例正在运行并且可以通过 SSMS 访问
我使用 -Verbose 执行 Update-Database 以获取有关错误的更多详细信息
测试于:.NET Core 8.0.204
需要 NuGet 包:
Microsoft.EntityFrameworkCore”版本=“8.0.4”
Microsoft.EntityFrameworkCore.SqlServer”版本=“8.0.4”
Microsoft.EntityFrameworkCore.Tools“版本=”8.0.4
尝试
appsettings.json:
"ConnectionStrings": {"DefaltConnection": "Data Source=.;Initial Catalog=soheil0910Db;Trusted_Connection=true;TrustServerCertificate=true;"}
或者
"ConnectionStrings": {"DefaltConnection": "Server=.;Database=soheil0910Db;Trusted_Connection=true;TrustServerCertificate=true;"
}
程序.cs:
builder.Services.AddDbContext<soheil0910context>(options =>{
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaltConnection"));});