c# - dotnet core 数据库首先使用 NetTopologySuite
问题描述
我最近升级到了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 搭建我的数据库
解决方案
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;
});
});
}
}
推荐阅读
- powerapps - 在 Powerapps 中,我可以添加一个文本字段并将其连接到 SharePoint 列表列吗
- c++ - BOOST 线程:线程还是进程?
- properties - vue组件设置child的数据值
- cobalt - youtube 应用程序中未更新最佳分辨率
- angular - Angular 6 二维码阅读器集成
- ubuntu-16.04 - AJP 连接器 Ubuntu 16、Tomcat 8 在哪里?
- android - android.intent.action.DOWNLOAD_COMPLETE 是显式广播吗?
- javascript - 理解 javascript 中的切片
- docker - Docker中的Keycloak“无法将代码转换为令牌”
- angular - 我应该为管理员和用户创建两个 Angular 项目吗?