Open Northwind.sln
solution.
Fix SQL data types in all files under Src/Persistence/Configuration
folder using the following data type mappings between SQL Server and PostgreSQL:
SQL Server | PostgreSQL |
---|---|
ntext | text |
image | bytea |
datetime | timestamp |
For example,
builder.Property(e => e.Description).HasColumnType("ntext");
should be changed to
builder.Property(e => e.Description).HasColumnType("text");
Remove Microsoft.EntityFrameworkCore.SqlServer
Nuget package from the Persistence project.
Add Npgsql.EntityFrameworkCore.PostgreSQL
Nuget package to the Persistence project (version 3.1.2)
Update Persistence/DependencyInjection.cs
file:
services.AddDbContext<NorthwindDbContext>(options =>
options.UseNpgsql(configuration.GetConnectionString("NorthwindPostgreDatabase")));
Update DesignTimeDbContextFactoryBase.cs
file:
private const string ConnectionStringName = "NorthwindPostgreDatabase";
optionsBuilder.UseNpgsql(connectionString);
Remove existing migrations (delete Persistence/Migrations
folder).
In order to run following commands, you should be inside Src/Persistence
folder.
Recreate migrations:
dotnet ef migrations add InitialPostgre
Create database:
dotnet ef database update