I am trying to create and use a PostgreSQL database with my .NET Core application. I'm using Entity Framework Core provided by Npgsql, and I'm going for the 'code-first' approach. However, when I try to generate the database (using either migrations or the "Database.EnsureCreated()" method) I always get the same error:
Npgsql.NpgsqlException (0x80004005): Exception while connecting ---> System.Net.Sockets.SocketException (10061): Connection refused.
I have tried both on Windows and Linux, and I've gotten the same result.
The packages I've added for my project are:
- Npgsql.EntityFrameworkCore.PostgreSQL version 3.1.3
- Microsoft.EntityFrameworkCore.Design version 3.1.3
My project uses .NET Core 3.1
Here's my code:
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; }
}
}
Edit: To be clear, when I use migrations, creating the migration itself succeeds, but I will still get the error mentioned above when I use the 'database update' command afterwards.