我正在使用 EF Core 代码优先方法并尝试使用以下代码段配置列类型 ltree 的签名强度。
public class Node
{
public Guid Id { get; set; }
public LTree Path { get; set; }
public string Name { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasPostgresExtension("ltree");
modelBuilder.Entity<Node>().HasIndex(x => x.Path).HasMethod("gist");
}
这只是创建一个默认签名长度为 8 个字节的索引。我想通过明确指定长度来覆盖这个签名长度,就像我们在 postgres 查询编辑器中所做的那样
CREATE INDEX "IX_Nodes_Path" ON public."Nodes" USING gist ("Path" gist_ltree_ops (siglen='100'))
实现这一目标的任何指示都将大有帮助。
我正在使用 posgres 版本 14.0、EF Core 6 rc、npgsql 6 rc。