10

我最近升级到了EntityFrameworkCore.PostgreSQL的最新版本,但空间数据似乎不起作用,因为他们现在使用NetTopologySuite看到这里

要设置 NetTopologySuite 插件,请将 Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite nuget 添加到您的项目中。然后,对您的 UseNpgsql() 行进行以下修改:

我使用dotnet ef dbcontext scaffold命令

dotnet ef dbcontext scaffold "MyConnectionString" Npgsql.EntityFrameworkCore.PostgreSQL

但是,该scaffold命令似乎没有使用NetTopologySuite映射。我仍然收到以下错误

Could not find type mapping for column 'public.behaviour.coord' with data type 'geometry(Point)'. Skipping column.

如何使用NetTopologySuite 搭建我的数据库

4

3 回答 3

0
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-25T18:22:30.277 回答
0

我正在使用geometry(Point, 4326)类型,我不得不将类型更改为几何

ALTER COLUMN coord TYPE geometry;
于 2019-02-26T10:19:56.260 回答
0

我有一个类似的问题,更新 postgre 库后,我不得不删除迁移文件并重新生成新的

于 2018-09-04T06:35:00.843 回答