NHibernate空间几何图形类型变为NULL表示直线仅包含两个坐标相同的点

NHibernate空间几何图形类型变为NULL表示直线仅包含两个坐标相同的点,nhibernate,geometry,geospatial,fluent,Nhibernate,Geometry,Geospatial,Fluent,我有这样的课: public class Edge { public virtual Guid IDEdge { get; set; } public virtual Node Source { get; set; } public virtual Node Target { get; set; } public virtual double Length { get; set; } public virtual byte Car { get; set;

我有这样的课:

public class Edge
{
    public virtual Guid IDEdge { get; set; }
    public virtual Node Source { get; set; }
    public virtual Node Target { get; set; }
    public virtual double Length { get; set; }
    public virtual byte Car { get; set; }
    public virtual byte CarReverse { get; set; }
    public virtual IGeometry Geometry { get; set; }
}
…和流畅的映射:

public class EdgeMap : ClassMap<Edge>
{
    public EdgeMap()
    {
        Table("Edges");
        LazyLoad();
        Id(x => x.IDEdge).GeneratedBy.GuidComb().Column("IDEdge");
        References(x => x.Source).Column("Source");
        References(x => x.Target).Column("Target");
        Map(x => x.Length).Not.Nullable().Column("Length");
        Map(x => x.Car).Not.Nullable().Column("Car");
        Map(x => x.CarReverse).Not.Nullable().Column("CarReverse");
        Map(x => x.Geometry).CustomType<MsSql2008GeometryType>().Not.Nullable().Column("Geom");
    }
}
坐标相同的两点

我有:

not-null property references a null or transient value Edge.Geometry

几何类的某个实例已丢失。如果线条包含不同的点,则可以成功插入边。

SQL Server中有一个限制:线条字符串必须至少有两个不同的点。看

Spatial目前没有针对此类情况引发适当的异常

not-null property references a null or transient value Edge.Geometry