5

Microsoft SQL Serverの代わりにバックエンドでPostgreSQLを使用するように私たちのdotnetコアプロジェクトを更新していて、データ型としてGUIDを使用する2つのテーブルで状況を突き詰めました。私はその後、私はUUID拡張子(これは何とか自動化することができるかどうかわからない)を有効にする必要が実現して、成功しpgAdminででUUIDを生成少しグーグル後PostgreSQL(npgsql)のデータベース生成uuidを許可するようにEntity Frameworkを設定するにはどうすればよいですか?

ERROR

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. 

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

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

+0

HasPostgresExtension()エラーが言うように、あなたのコンテキストのOnModelCreatingに配置する必要があります。ここではOnModelCreatingは他の人がこれを試すためにどのように見えるかの抜粋です。それがあなたの文脈の関連部分を掲示しないならば。これが動作するには、Npgsqlの不安定なフィードから1.0.0-rc3-ci-39以上のバージョンを使用している必要があります。 –

答えて

6

Shayの指示通り - Npgsqlの最新バージョンにアップデートした後、uuid拡張エラーはなくなりました。

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

     builder.HasPostgresExtension("uuid-ossp"); 
    } 
関連する問題