簡體   English   中英

ASP.NET 找不到 Core 6 命名連接字符串

[英]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();

更改以下代碼

var connectionString = builder.Configuration.GetConnectionString("ConnectionStrings:someconn ");

var connectionString = builder.Configuration.GetConnectionString("someconn");

它在我的本地有效,你可以試試。 另請注意,您的代碼中有一個額外的空間。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM