我最近升级到了最新版本的EntityFrameworkCore.PostgreSQL,但是空间数据似乎不起作用,因为它们现在使用的是NetTopologySuite (见这里 )。
若要设置Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite插件,请将NetTopologySuite nuget添加到项目中。然后,对UseNpgsql()行进行以下修改:
我使用dotnet ef dbcontext scaffold命令
dotnet ef dbcontext scaffold "MyConnectionString" Npgsql.EntityFrameworkCore.PostgreSQL但是,NetTopologySuite命令似乎不使用scaffold映射。我仍然得到以下错误
Could not find type mapping for column 'public.behaviour.coord' with data type 'geometry(Point)'. Skipping column.如何使用NetTopologySuite构建数据库
发布于 2018-09-04 06:35:00
我也遇到了类似的问题,在更新postgre库之后,我不得不删除迁移文件并重新生成新的迁移文件。
发布于 2019-02-25 18:22:30
public class EFDesignTimeService : IDesignTimeServices
{
public void ConfigureDesignTimeServices(IServiceCollection services)
{
new EntityFrameworkRelationalServicesBuilder(services).TryAddProviderSpecificServices(x =>
{
x.TryAddSingleton<INpgsqlOptions, NpgsqlOptions>(p =>
{
var dbOption = new DbContextOptionsBuilder()
.UseNpgsql("connection string",
ob => ob.UseNodaTime().UseNetTopologySuite()).Options;
var npgOptions = new NpgsqlOptions();
npgOptions.Initialize(dbOption);
return npgOptions;
});
});
}
}发布于 2019-02-26 10:19:56
我使用的是geometry(Point, 4326)类型,必须将该类型更改为几何图形。
ALTER COLUMN coord TYPE geometry;https://stackoverflow.com/questions/50969744
复制相似问题