Spatialite库NHibernate应用错误一

来源:互联网 发布:服务器端口检测 编辑:程序博客网 时间:2024/06/06 00:06

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



解决方法一:

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映射时,需要指定明确的属性类型。



0 0
原创粉丝点击