Je travaille sur un projet C# en utilisant NHibernate, j'utilise fluant-NHibernate avec AutoMapping:NHibernate: TINYINT au lieu de la géométrie
FluentConfiguration configuration = Fluently.Configure()
.Database(databaseConfig)
.Mappings(m => m.AutoMappings.Add(AutoMap.AssemblyOf<Entity>(mappingConfiguration).Conventions.Add<GeometryTypeConvention>()));
J'ai des classes avec des propriétés IGeometry, j'ai configuré AutoMapping avec une auto Type de convention:
public class GeometryTypeConvention : IUserTypeConvention
{
public void Accept(IAcceptanceCriteria<IPropertyInspector> criteria)
{
criteria.Expect(p => p.Property.PropertyType == typeof (IGeometry));
}
public void Apply(IPropertyInstance instance)
{
instance.CustomType(typeof(MsSql2008GeometryType));
}
}
Lorsque je mets à jour le schéma, la base de données est créée, mais toutes les propriétés de la géométrie dans les classes sont définies comme colonnes TINYINT.
J'ai vu presque le même problème sur http://www.klopfenstein.net/lorenz.aspx/null-geometry-values-in-nhibernate-spatial-for-mssql2008, mais le fichier MsSql2008GeometryType.cs que j'utilise est correct.