![](/img/trans.png)
[英]ASP.NET Core 2 with Entity Framework, showing no connection string named '####' could be found in the application config file
[英]ASP.NET Core 6 named connection string not found
我在新的 ASP.NET Core MVC web 應用程序中使用 .NET 6 和 Entity Framework Core 6。 我在用戶機密中設置了連接字符串。 我能夠執行
dotnet ef dbcontext scaffold Name=ConnectionStrings:someconn
沒有任何麻煩。 我的 model 上下文已創建。 現在我想做一個簡單的查詢,但是program.cs
中的構建器抱怨找不到連接。
在這里我創建一個構建器
var builder = WebApplication.CreateBuilder(args);
var currentDirectory = AppDomain.CurrentDomain.BaseDirectory;
var environmentName = builder.Environment.EnvironmentName;
builder.Configuration
.SetBasePath(currentDirectory)
.AddUserSecrets<Program>()
.AddEnvironmentVariables();
var connectionString = builder.Configuration.GetConnectionString("ConnectionStrings:someconn ");
在這里,我將此代碼放在 program.cs 中,就在 app.Run 之前。
using (var ctx = new ModelContext())
{
List<SomeModel> pd = ctx.SomeModel
.Where(p => p.Id == "12345").ToList();
}
app.Run();
錯誤
使用了命名的連接字符串,但在應用程序的配置中找不到名稱“ConnectionStrings:someconn”
下面是從 appsettings.json 讀取連接字符串的示例。 (為簡單起見,我使用了 sqlite 的樣本,這不應該影響他們讀取字符串的一般方式。)
希望這可以幫助。
應用程序設置.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Information",
"Microsoft.AspNetCore": "Information"
}
},
"ConnectionStrings": {
"someconn": "Data Source=some.sqlite"
}
}
和 Program.cs 中的
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("someconn")
原因可能是找不到appsettings.json
。 也許檢查這部分代碼是否需要或在讀取連接字符串后執行它。
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("someconn")
var currentDirectory = AppDomain.CurrentDomain.BaseDirectory;
var environmentName = builder.Environment.EnvironmentName;
builder.Configuration
.SetBasePath(currentDirectory)//check if this is necessary
.AddUserSecrets<Program>()
.AddEnvironmentVariables();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.