[英]ASP.NET core Entity Framework null value connection string
I want to connect my api to a SQL Server database. 我想将我的api连接到SQL Server数据库。 I am getting a null connection string value in my startup class.
我在启动类中得到一个空的连接字符串值。 I totally don't know what I am doing wrong.
我完全不知道我在做什么错。 Could you please check and let me know what should I correct?
您能否检查一下,让我知道我该如何纠正? Thank you in advance.
先感谢您。
Startup.cs Startup.cs
var connectionSettings = Configuration.GetSection("Connection").Get<ConnectionSettings>();
services.AddDbContextPool<Context>(
options => options
.UseSqlServer(connectionSettings.ConnectionString));
My appsettings.json
connection is below: 我的
appsettings.json
连接如下:
"Connection": [
{
"EFMode": "MSSQL",
"DatabaseName": "Shop",
"ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=Shop;Trusted_Connection=True,MultipleActiveResultSets=True"
}
In Program.cs
(main class): 在
Program.cs
(主类)中:
var db = services.GetService<Context>();
if (db != null)
{
var cs = services.GetService<ConnectionSettings>();
db.Database.Migrate();
var dt = services.GetService<DefaultTriggers>();
}
And my Context.cs
: 还有我的
Context.cs
:
var connectionSettings = config.GetSection("Connection").Get<ConnectionSettings>();
var optionsBuilder = new DbContextOptionsBuilder<Context>();
optionsBuilder.UseSqlServer(connectionSettings.ConnectionString);
return new Context(optionsBuilder.Options);
ConnectionSettings.cs ConnectionSettings.cs
public class ConnectionSettings
{
public string ConnectionString { get; set; }
public string DatabaseName { get; set; }
}
You either have to change your settings so that you have a single connection object (note that I've removed the [
array ]
: 您要么必须更改设置,以便拥有一个连接对象(请注意,我已经删除了
[
array ]
:
"Connection": {
"EFMode": "MSSQL",
"DatabaseName": "Shop",
"ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=Shop;Trusted_Connection=True,MultipleActiveResultSets=True"
}
Or you need to instruct the configuration object to load an array of ConnectionSettings
: 或者您需要指示配置对象加载
ConnectionSettings
的数组:
var connectionSettings = Configuration.GetSection("Connection").Get<ConnectionSettings[]>();
var shopConnection = connectionSettings.First(s => s.DatabaseName == "Shop");
您可以简化获取连接字符串的方式,如下所示:
var connectionString = config["Connection:ConnectionString"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.