我使用postgres/postgis作爲db和Nhibernate作爲C#項目的ORM。NHibernate Postgres空間幾何類型變爲NULL
這是我第一次嘗試將postgis映射到.Net應用程序。我的設置使用NHibernate的版本4.0.4.4000和NHibernate.Spatial.PostGis 4.0.4.4000(與版本Npgsql的3.0.5)
我也跟着,以建立映射this tutorial,所以我有:
在web.config中
<property name="dialect">NHibernate.Spatial.Dialect.PostGisDialect,NHibernate.Spatial.PostGis</property>
對我說
cfg.AddAuxiliaryDatabaseObject(new SpatialAuxiliaryDatabaseObject(cfg));
我的XML映射文件具有以下映射NHibernate的配置:
<property name="Geom" column="the_geom" type="NHibernate.Spatial.Type.GeometryType, NHibernate.Spatial" />
also tried using PostGis namespace in the mapping:
<property name="Geom" column="the_geom">
<type name="NHibernate.Spatial.Type.PostGisGeometryType, NHibernate.Spatial.PostGis">
<param name="srid">3006</param>
<param name="subtype">POLYGON</param>
</type>
</property>
和我的模型類具有以下屬性
public virtual IGeometry Geom { get; set; }
現在,當我過任何取幾何屬性的Geom是空的。 在日誌中,我不會收到異常或錯誤消息。 我不知道還有什麼可以嘗試的。
在這question,使用MS sql服務器,他得到了它的工作,因爲他發現,當前dll(Microsoft.SqlServer.Types.dll)和所需的支持不同版本的Ms sql,因此將該dll映射到舊版本修復了這個問題。這可能是這種情況嗎?我該怎麼辦?
我也看過this post它在哪裏工作,他定義了自己的UserTypeConvention,但我沒有定義「UserTypeConvention」,所以它不適用於我。
我已經嘗試在gis stackexchange發佈這個問題沒有結果,所以我在這裏嘗試。