PostgreSQL(npgsql)のデータベース生成uuidを可能にするためにEntity Frameworkを設定するにはどうすればよいですか?

asp.net asp.net-core entity-framework-core npgsql postgresql

質問

Microsoft SQL Serverの代わりにPostgreSQLをバックエンドで使用するためのdotnetコアプロジェクトを更新していて、データ型としてGUIDを使用する2つのテーブルで状況を突き止めました。

エラー

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.

ちょっとグーグルで行った後、私はuuid拡張機能を有効にしなければならないことに気付きました(これは何とか自動化できるかどうかは分かりません)。そして、pgAdminにuuidを生成しました。

CREATE EXTENSION "uuid-ossp";
SELECT uuid_generate_v4();

残念ながら、私のdotnetプロジェクトはまだ同じエラーで不平を言っています。私はそれがOnModelCreatingに.HasPostgresExtension( "uuid-ossp")追加すると言うエラーが表示され、私はいくつかのスポットで試してみましたが、具体的にどこに追加する必要があるのか​​分からないようです。

受け入れられた回答

Shayの指示に従って - Npgsqlの最新バージョンに更新した後、uuid拡張エラーはなくなりました。これを試している他の人たちのOnModelCreatingの外観の抜粋です:

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);

        builder.HasPostgresExtension("uuid-ossp");
    }


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ