まあ、私はNHibernateの空間を使用していませんでしたが、私はコードを閲覧し、あなたが例えば.CustomTypeIs<>
でそれを使用することができるはずですので、それはIUserTypeからGeometryType
継承のようになります。
Map(x => x.Geometry, "the_geom").CustomTypeIs<GeometryType>();
それは自動的に起こる場合を除き、それはおそらく、しかし、あなたのparam
要素を取得することはできません。私はこれを行うには、本当に良い方法のかわからないが、あなたはいつものようにXMLの変更を追加することができます:WithText
機能を得るために
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")
);
注意が、あなたのようなXmlElement
のための拡張機能を追加する必要があります流暢NHibernateは1.0でコードを使用しようとすると、私はPropertyPartタイプ内AddAlteration機能を見つけることができませんよ
public static class XmlExtensions
{
public static XmlElement WithText(this XmlElement element, string text)
{
element.InnerText = text;
return element;
}
}
:そう(WithAttとはaddElementはFluentNHibernate.Mapping名前空間の拡張です)。あなたのコードはFluent NHibernateのバージョン1.0で動作していますか? – Martin
いいえ、これはもう機能しません。実際、WithAttは私がこの記事を書いてからずっと後に削除されました。 CustomType()でも、Map(x => ...)でカスタムタイプを設定できますが、そこにparam属性/要素を取得できるとは思いません。 FNHグループへの投稿をおすすめします:http://groups.google.com/group/fluent-nhibernate –