PostgreSQL的连接字符串

时间:2019-01-25 11:56:01

标签: postgresql asp.net-core connection-string

我正在尝试将我的连接字符串写入我的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);

2 个答案:

答案 0 :(得分:0)

对于.NET Core,我使用:

_connectionString = config.GetConnectionString("PostgreConnectionString");

config

{     
  "ConnectionStrings": {
    "PostgreConnectionString": "string"
  }
}

有效

答案 1 :(得分:0)

问题是嵌套括号! Appsettings.json会生成一个连接到“ Logging”对象中的ConnectionStrings对象。 把ConnectionStrings放出来,您的Configuration.GetConnectionStrings将起作用!