Well, I did not use NHibernate Spatial, but I looked at the code, and it looks like it GeometryTypeinherits from IUserType so you can use it with.CustomTypeIs<>
For example:
Map(x => x.Geometry, "the_geom").CustomTypeIs<GeometryType>();
If this does not happen automatically, you may not receive your items param. I'm not sure of a really good way to do this, but you can always add an XML change like this:
Map(x => x.Geometry, "the_geom").AddAlteration(p => p.AddElement("type")
.WithAtt("name", "NHibernate.Spatial.Type.GeometryType,NHibernate.Spatial")
.AddElement("param")
.WithAtt("name", "subtype")
.WithText("MULTIPOLYGON")
.ParentNode
.AddElement("param")
.WithAtt("name", "srid")
.WithText("-1")
);
, WithText XmlElement, (WithAtt AddElement FluentNHibernate.Mapping):
public static class XmlExtensions
{
public static XmlElement WithText(this XmlElement element, string text)
{
element.InnerText = text;
return element;
}
}