pos*_*815 3 c# entity-framework-core .net-core
我正在使用 Entityframework Core 和代码优先方法设置一个新数据库。我已经在下面的代码清单中设置了一个上下文类,以及数据库表的所有需要的类。现在我想用
using (var context = new MyContext())
{
context.Database.EnsureCreated();
}
Run Code Online (Sandbox Code Playgroud)
但我得到的是一个错误,连接字符串不能为空。
我的 Connectionstring 在 appsettings.json 文件中设置,我在项目构建时将其复制到输出目录。
我尝试了不同的方法来从 appsettings 文件中获取连接字符串,但结果都相同。在 Startup 类的 Configuration 属性中,我可以看到 appsettings 文件已正确加载,但是当我想获取字符串时
ConnectionString = Configuration["Connectionstrings:MyConnection"];
Run Code Online (Sandbox Code Playgroud)
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();
}
Run Code Online (Sandbox Code Playgroud)
在配置 - 方法中有以下内容
using (var context = new MyContext())
{
context.Database.EnsureCreated();
}
Run Code Online (Sandbox Code Playgroud)
在我的上下文类中,我有以下代码
public class MyContext : DbContext
{
public MyContext()
{
}
public static string GetConnectionString()
{
return Startup.ConnectionString;
}
protected override void OnConfiguring(DbContextOptionsBuilder _builder)
{
_builder.UseSqlServer(GetConnectionString());
}
Run Code Online (Sandbox Code Playgroud)
所以现在,当我启动应用程序时,我在 OnConfiguring - 方法中收到连接字符串不能为空的错误。
我的 appsettings.json 文件是
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"Connnectionstrings": {
"MyConnection": "server=.;database=MyDatabase;trusted_connection=true;MultipleActiveResultSets=True"
},
}
Run Code Online (Sandbox Code Playgroud)
该ConnectionString是空永诺,因为有一个错字,试试这个
ConnectionString = Configuration["Connnectionstrings:MyConnection"];
Run Code Online (Sandbox Code Playgroud)
或在 appsettings.json 中修复名称
| 归档时间: |
|
| 查看次数: |
12910 次 |
| 最近记录: |