地域を使用しています 方言ですが、ジオメトリのCustomTypeを使用しています あなたのマッピングに。カスタムタイプの地理を使用する必要があります 。次のようなもの:
public class PlaceMap : ClassMap<Place>
{
public PlaceMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Location).CustomType(typeof(MsSql2008GeographyType)); //for SQL2008
}
}
また、あなたがしなければならないかもしれない何か他のものがあります。空間列のSRIDが0(ゼロ)とは異なり、NH xmlマッピングをスキップする場合は、次のようなカスタムタイプを宣言する必要があります。
public class Wgs84GeographyType : MsSql2008GeographyType
{
protected override void SetDefaultSRID(GeoAPI.Geometries.IGeometry geometry)
{
geometry.SRID = 4326;
}
}
そして、それをマッピングで使用します:
public class PlaceMap : ClassMap<Place>
{
public PlaceMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Location).CustomType(typeof(Wgs84GeographyType));
}
}
更新:
NHibernate.Spatial.MsSql2008.dllを参照する必要があります。データベース構成では、強く型付けされた方言メソッドを使用することをお勧めします。
.Dialect<MsSql2008GeographyDialect>()