我正在用WebAPI核心net5.0开发一个asp.net
PostgreSQL
在域对象中,我使用Ltree作为层次结构。在添加和更新迁移时,会得到以下错误:Npgsql.PostgresException: type "ltree" does not exist。
我做了一些研究发现,如果我在"create extension Ltree"数据库上运行PostgreSQL,这将为Ltree创建扩展。
在代码优先方法中,将在添加和更新迁移时创建数据库,因此我无法转到数据库并为此创建扩展。
我的问题是:是否有可能在迁移中创建一个扩展?
public class Department
{
public int Id { get; set; }
[Column(TypeName = "Ltree")]
public string Ltree { get; set; }
public string Name { get; set; }
}发布于 2022-02-15 09:52:11
通过在模型构建代码(例如OnModelCreating)中添加以下行,您可以让EF为您创建扩展:
modelBuilder.HasPostgresExtension("ltree");请注意,在Version7.0中,提供程序将自动检测到需要扩展(通过查看模型属性),并将添加适当的PostgreSQL扩展,而不必显式地这样做(请参阅https://github.com/npgsql/efcore.pg/issues/2137)。
https://stackoverflow.com/questions/71122233
复制相似问题