How do I configure Entity Framework to allow database-generate uuid for PostgreSQL (npgsql)? entity-framework-core npgsql postgresql


I'm updating our dotnet core project to use PostgreSQL on the backend instead of Microsoft SQL Server and hit a situation with two tables that use a GUID as the data type.


Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Property CommentID on type is a database-generated uuid, which requires the PostgreSQL uuid-ossp extension. Add .HasPostgresExtension("uuid-ossp") to your context's OnModelCreating.

After a little googling I then realized I have to enable the uuid extension (not sure if this can be automated somehow) and then generated a uuid in pgAdmin successfully.

SELECT uuid_generate_v4();

Unfortunately my dotnet project is still complaining with the same error tho. I see in the error it says to add .HasPostgresExtension("uuid-ossp") to OnModelCreating and I've tried in several spots but can't seem to figure out where specifically it should be added.

6/1/2016 8:38:51 PM

Accepted Answer

As per Shay's instruction - After updating to the latest version of Npgsql, the uuid extension error is now gone. Here's a snippet of what the OnModelCreating looks like for others trying this out:

    protected override void OnModelCreating(ModelBuilder builder)

6/2/2016 3:00:13 PM

Related Questions


Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow