Sto aggiornando il nostro progetto core dotnet per utilizzare PostgreSQL sul back-end anziché Microsoft SQL Server e colpire una situazione con due tabelle che utilizzano un GUID come tipo di dati.Come configurare Entity Framework per consentire a uuid di generazione di database per PostgreSQL (npgsql)?
ERRORE
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.
Dopo un po 'googling Mi resi conto allora che devo abilitare l'estensione uuid (non so se questo può essere automatizzato in qualche modo) e quindi ha generato un UUID in pgAdmin successo.
CREATE EXTENSION "uuid-ossp";
SELECT uuid_generate_v4();
Sfortunatamente il mio progetto dotnet si lamenta ancora dello stesso errore. Vedo nell'errore che dice a aggiungere .HasPostgresExtension ("uuid-ossp") a OnModelCreating e ho provato in diversi punti ma non riesco a capire dove specificamente dovrebbe essere aggiunto.
HasPostgresExtension() deve essere collocato in OnModelCreating del contesto, come dice l'errore. In caso contrario, pubblica le parti pertinenti del tuo contesto. Nota che devi utilizzare almeno la versione 1.0.0-rc3-ci-39 dal feed instabile di Npgsql affinché funzioni. –