gpt4 book ai didi

c# - 如何在 Entity Framework Core 中从 appsettings.json 设置连接字符串

转载 作者:行者123 更新时间:2023-12-02 08:49:06 28 4
gpt4 key购买 nike

我正在使用 Entityframework Core 和代码优先方法设置一个新数据库。我已经设置了一个上下文类,如下面的代码 list 所示,以及数据库表所需的所有类。现在我想用

创建新数据库
using (var context = new MyContext())
{
context.Database.EnsureCreated();
}

但是我得到的是一个错误,连接字符串不能为空。

我的连接字符串在 appsettings.json 文件中设置,我在项目构建时将其复制到输出目录。

我尝试了不同的方法从应用程序设置文件中获取连接字符串,但结果都相同。在启动类的配置属性中,我可以看到 appsettings 文件已正确加载,但是当我想使用

获取字符串时
ConnectionString = Configuration["Connectionstrings:MyConnection"];

ConnectionString 始终为空。

我的 Startup.cs 文件中有这个:

 public class Startup
{
public static string ConnectionString { get; private set; }
public IConfigurationRoot Configuration { get; set; }

public Startup(IHostingEnvironment _environment)
{
Configuration = new ConfigurationBuilder()
.SetBasePath(_environment.ContentRootPath)
.AddJsonFile("appsettings.json")
.Build();
}

在配置 - 方法中使用以下内容

using (var context = new MyContext())
{
context.Database.EnsureCreated();
}

在我的上下文类中,我有以下代码

public class MyContext : DbContext
{
public MyContext()
{
}

public static string GetConnectionString()
{
return Startup.ConnectionString;
}

protected override void OnConfiguring(DbContextOptionsBuilder _builder)
{
_builder.UseSqlServer(GetConnectionString());
}

现在,当我启动应用程序时,我在 OnConfiguring - 方法中收到错误,连接字符串不能为空。

我的 appsettings.json 文件是

{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},

"Connnectionstrings": {
"MyConnection": "server=.;database=MyDatabase;trusted_connection=true;MultipleActiveResultSets=True"
},
}

最佳答案

ConnectionString 始终为 null,因为存在拼写错误,请尝试此操作

ConnectionString = Configuration["Connnectionstrings:MyConnection"];

或修复 appsettings.json 中的名称

关于c# - 如何在 Entity Framework Core 中从 appsettings.json 设置连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56017952/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com