Stai utilizzando una Geografia dialetto ma utilizzando un CustomType di Geometry sulla tua mappatura. Dovresti utilizzare un tipo personalizzato di Geografia . Qualcosa come:
public class PlaceMap : ClassMap<Place>
{
public PlaceMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Location).CustomType(typeof(MsSql2008GeographyType)); //for SQL2008
}
}
Inoltre, c'è qualcos'altro che potresti dover fare. Se la tua colonna spaziale ha un SRID diverso da 0 (zero) e se vuoi saltare i mapping NH xml, dovrai dichiarare un tipo personalizzato come questo:
public class Wgs84GeographyType : MsSql2008GeographyType
{
protected override void SetDefaultSRID(GeoAPI.Geometries.IGeometry geometry)
{
geometry.SRID = 4326;
}
}
E poi usalo sulla tua mappatura:
public class PlaceMap : ClassMap<Place>
{
public PlaceMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Location).CustomType(typeof(Wgs84GeographyType));
}
}
AGGIORNAMENTO:
Dovresti fare riferimento a NHibernate.Spatial.MsSql2008.dll e ti consiglierei di usare il metodo Dialect fortemente tipizzato nella configurazione del tuo database.
.Dialect<MsSql2008GeographyDialect>()