gpt4 book ai didi

c# - 使用 Entity Framework 保存 NpgsqlPoint (Postgresql Point)

转载 作者:行者123 更新时间:2023-11-29 11:48:20 25 4
gpt4 key购买 nike

我正在尝试将一个点类型保存到 Postgresql 中我试过这种方法。(Db表模型定义)

 public NpgsqlPoint Position { get; set; }

我用这个方法设置对象

  posData.Position = new NpgsqlPoint (34.3244,23.2344);

但是当我在 dbContext 上调用 .SaveChanges 时,我得到一个异常不是 Null Constraint Violation,所以我猜 EF 正试图插入一个 null。

我已经在进入之前调试了 posData.Position 并且该对象包含正确的数据。

我已经搜索过谷歌,但我没有找到任何示例或遇到相同问题的人。

有什么线索吗?

最佳答案

看起来 NpgsqlPoint 生成了一个 PostgreSQL point type .这POINT geometry type相同由 PostGIS 扩展使用(例如,geometry(Point, 4326))。

要制作 PostGIS 几何,您需要xysrid(空间引用 ID;例如,参见 http://spatialreference.org/ )。这些可以与 ST_MakePoint 一起使用几何构造函数,和 ST_SetSRID建立空间引用。例如,这是一个参数化命令:

SELECT ST_SetSRID(ST_MakePoint(:long:, :lat:), 4326)

假定 WGS84 坐标 (SRID=4326)。

关于c# - 使用 Entity Framework 保存 NpgsqlPoint (Postgresql Point),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17636178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com