数据库用的是 SqlServer2014,C#.net开发
SqlBoolean为什么返回{Null}?传入的点和面的数据都没问题,求高手指点。
point.STWithin失败了吧
1 [SqlMethod(IsDeterministic = true, IsPrecise = false)] 2 public SqlBoolean STWithin(SqlGeometry other) 3 { 4 if (this.IsNull || other == null || (other.IsNull || this.Srid != other.Srid)) 5 return SqlBoolean.Null; 6 this.ThrowIfInvalid(); 7 other.ThrowIfInvalid(); 8 return (SqlBoolean) GLNativeMethods.Contains(other.GeoData, this.GeoData); 9 }
自己解决了,看了反编译的Microsoft.SqlServer.Types的源代码发现是因为点和面的Srid不一致导致的。