Du bruger en Geografi dialekt, men bruger en CustomType af Geometri på din kortlægning. Du bør bruge en tilpasset type Geografi . Noget som:
public class PlaceMap : ClassMap<Place>
{
public PlaceMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Location).CustomType(typeof(MsSql2008GeographyType)); //for SQL2008
}
}
Der er også noget andet, du muligvis skal gøre. Hvis din rumlige kolonne har et SRID forskelligt fra 0 (nul), og hvis du vil springe NH xml-tilknytninger over, skal du angive en tilpasset type som denne:
public class Wgs84GeographyType : MsSql2008GeographyType
{
protected override void SetDefaultSRID(GeoAPI.Geometries.IGeometry geometry)
{
geometry.SRID = 4326;
}
}
Og brug det så på din kortlægning:
public class PlaceMap : ClassMap<Place>
{
public PlaceMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Location).CustomType(typeof(Wgs84GeographyType));
}
}
OPDATERING:
Du bør henvise til NHibernate.Spatial.MsSql2008.dll, og jeg vil råde dig til at bruge den stærkt indtastede Dialect-metode i din databasekonfiguration.
.Dialect<MsSql2008GeographyDialect>()