我正在尝试将我的连接字符串写入我的appsettings.json文件中,并通过扩展类将其引入启动文件中,但是我一直得到
值不能为null。参数名称:connectionString。
我一直在使用各种示例,但似乎看不到带有ASP.NET Core 2.2启动类的新设置。而且我正在使用PostgreSql
appsetting.json文件
{
"PostgreConnectionString": {
"DefaultConnection": "User ID=1;Password=1234;Host=localhost;Port=5432;Database=Demo;Pooling=true;Integrated Security=true;",
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
}
ServiceExtension.cs
public static void ConfigurePostgreSQL(this IServiceCollection services, IConfiguration config)
{
var connectionString = config["PostgreConnectionString:DefaultConnection"];
services.AddDbContext<RepositoryContext>(options => options.UseNpgsql(config.GetConnectionString(connectionString))); --Error in this line value cannot be null
}
Startup.cs
services.ConfigurePostgreSQL(Configuration);
答案 0 :(得分:0)
对于.NET Core,我使用:
_connectionString = config.GetConnectionString("PostgreConnectionString");
config
{
"ConnectionStrings": {
"PostgreConnectionString": "string"
}
}
有效
答案 1 :(得分:0)
问题是嵌套括号! Appsettings.json会生成一个连接到“ Logging”对象中的ConnectionStrings对象。 把ConnectionStrings放出来,您的Configuration.GetConnectionStrings将起作用!