EntityFramework 地理列的 PostgreSQL GIST 索引
EntityFramework PostgreSQL GIST index for geography column
我正在尝试创建一个索引,如下所示:
CREATE INDEX example1_gpx ON example1 USING GIST (geography(geomcol));
使用 EF codefirst,我在 codefirst 上做了这个:
builder.HasIndex(x => new
{
x.GeoLocation
})
.HasMethod("GIST");
但我不能指定它是地理类型的列。
如何使用 CodeFirst 创建此索引?
您上面的索引似乎将 geography()
转换应用于 geometry
列;如果是这样,它就是一个表达式索引(而不是一个简单的列索引)。 Npgsql EF Core 提供程序当前不支持建模表达式索引(see this issue), but you can always use raw SQL 在迁移中创建索引。
但是,我建议您考虑一下为什么要将表达式索引中的 geometry
列转换为 geography
;您可能需要考虑改用您的专栏 geography
。另一种选择是在 geometry
列旁边生成一个类型为 geography
的附加列。
我正在尝试创建一个索引,如下所示:
CREATE INDEX example1_gpx ON example1 USING GIST (geography(geomcol));
使用 EF codefirst,我在 codefirst 上做了这个:
builder.HasIndex(x => new
{
x.GeoLocation
})
.HasMethod("GIST");
但我不能指定它是地理类型的列。
如何使用 CodeFirst 创建此索引?
您上面的索引似乎将 geography()
转换应用于 geometry
列;如果是这样,它就是一个表达式索引(而不是一个简单的列索引)。 Npgsql EF Core 提供程序当前不支持建模表达式索引(see this issue), but you can always use raw SQL 在迁移中创建索引。
但是,我建议您考虑一下为什么要将表达式索引中的 geometry
列转换为 geography
;您可能需要考虑改用您的专栏 geography
。另一种选择是在 geometry
列旁边生成一个类型为 geography
的附加列。