首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Npgsql.PostgresException:不存在"ltree“类型

Npgsql.PostgresException:不存在"ltree“类型
EN

Stack Overflow用户
提问于 2022-02-15 06:57:17
回答 1查看 525关注 0票数 0

我正在用WebAPI核心net5.0开发一个asp.net

PostgreSQL

  • Provider: EF核心

  • 方法:代码优先

在域对象中,我使用Ltree作为层次结构。在添加和更新迁移时,会得到以下错误:Npgsql.PostgresException: type "ltree" does not exist

我做了一些研究发现,如果我在"create extension Ltree"数据库上运行PostgreSQL,这将为Ltree创建扩展。

在代码优先方法中,将在添加和更新迁移时创建数据库,因此我无法转到数据库并为此创建扩展。

我的问题是:是否有可能在迁移中创建一个扩展?

代码语言:javascript
复制
public class Department
{
   public int Id { get; set; }
   
   [Column(TypeName = "Ltree")]
   public string Ltree { get; set; }
   
   public string Name { get; set; }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-15 09:52:11

通过在模型构建代码(例如OnModelCreating)中添加以下行,您可以让EF为您创建扩展:

代码语言:javascript
复制
modelBuilder.HasPostgresExtension("ltree");

请注意,在Version7.0中,提供程序将自动检测到需要扩展(通过查看模型属性),并将添加适当的PostgreSQL扩展,而不必显式地这样做(请参阅https://github.com/npgsql/efcore.pg/issues/2137)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71122233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档