Spatialite库NHibernate应用错误一

本文介绍了两种解决特定运行时错误的方法:一是修改属性类型的声明;二是通过增加图形类型参数来解决NHibernate映射问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运行时错误看截屏,困扰了多天,尝试更新引用库版本,均无效,偶尔能好使。今天终于解决,其实错误提示还是很明确的,但之前就是不开窍。现把问题记录备忘。

 

解决方法一:

public virtual GeoAPI.Geometries.IGeometry FPos { get; set; }

改为:

public virtual NetTopologySuite.Geometries.Point FPos { get; set; }

即可解决。

 

解决方法二:

[Property(0, Name = "FPos", Column = "FPOS", NotNull = false, TypeType = typeof(NHibernate.Spatial.Type.GeometryType))]
[Param(Content = "POINT", Name = "subtype")]   // 增加明确图形类型
[Param(Content = "4326", Name = "srid")]  

public virtual GeoAPI.Geometries.IGeometry FPos { get; set; }

 

原因分析:

系统引用了类库

GeoAPI 1.7.4 ---  地理要素接口定义

NetTopologySuite 1.14  ---  GeoAPI的实现

NetTopologySuite.IO.SpatiaLite  1.14 ---  NTS基于Spatialite库的扩展,读取数据并转化为NTS库定义的图形要素。

NHibernate.dll  4.1.1.4000  \ NHibernate.Spatial.dll 4.0.3.4000 ---- NH对数据库的操作定义。

NHibernate.Spatial.SpatiaLite.dll ---  NH对Spatailite库的操作的实现。

 

在进行NHibernate映射时,需要指定明确的属性类型。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值