gpt4 book ai didi

asp.net - 如何配置 Entity Framework 以允许数据库为 PostgreSQL (npgsql) 生成 uuid?

转载 作者:行者123 更新时间:2023-11-29 11:24:20 25 4
gpt4 key购买 nike

我正在更新我们的 dotnet 核心项目以在后端使用 PostgreSQL 而不是 Microsoft SQL Server,并遇到了两个表使用 GUID 作为数据类型的情况。

错误

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 项目仍在提示同样的错误。我在错误中看到它说 add .HasPostgresExtension("uuid-ossp") 到 OnModelCreating 并且我在几个地方尝试过但似乎无法弄清楚应该添加它的具体位置。

最佳答案

按照 Shay 的说明 - 更新到最新版本的 Npgsql 后,uuid 扩展错误现在消失了。以下是 OnModelCreating 的片段,供其他人试用:

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

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

关于asp.net - 如何配置 Entity Framework 以允许数据库为 PostgreSQL (npgsql) 生成 uuid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37578359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com