使用 Npgsql Entity Framework Core 创建 Postgres 数据库时出现连接被拒绝错误

Connection Refused error on Postgres database creation using Npgsql Entity Framework Core

我正在尝试通过我的 .NET Core 应用程序创建和使用 PostgreSQL 数据库。我正在使用 Npgsql 提供的 Entity Framework 核心,我打算采用 'code-first' 方法。但是,当我尝试生成数据库(使用迁移或 "Database.EnsureCreated()" 方法)时,我总是得到相同的错误:

Npgsql.NpgsqlException (0x80004005): 连接时出现异常 ---> System.Net.Sockets.SocketException (10061): 连接被拒绝。

我在 Windows 和 Linux 上都试过了,我得到了相同的结果。

我为我的项目添加的包是:

我的项目使用.NET Core 3.1

这是我的代码:

using Microsoft.EntityFrameworkCore;
using System;

namespace PostgresTest {
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Hello World!");
        }
    }
    public class PeopleContext : DbContext {
        public DbSet<Person> People { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder options)
            => options.UseNpgsql("Host=localhost;Database=postgres;Port=5432;Username=postgres;Password=12345678");
    }
    public class Person {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
    }
}

编辑: 说清楚,当我使用迁移时,创建迁移本身成功,但是当我使用 'database update' 时仍然会出现上述错误之后命令。

https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 下载 PostgreSQL 服务器并根据您的配置更新您的连接字符串。
更多 https://code-maze.com/configure-postgresql-ef-core/

我认为你的连接不好。尝试将 HOST 更改为 SERVER

protected override void OnConfiguring(DbContextOptionsBuilder options)=>
                 //options.UseNpgsql("Host=localhost;Database=postgres;Port=5432;Username=postgres;Password=12345678"); 
    options.UseNpgsql("Server=localhost;Database=postgres;Port=5432;Username=postgres;Password=12345678");