C# 执行DbGeometry Contains操作时发生SqlNullValueException
我在尝试执行C# 执行DbGeometry Contains操作时发生SqlNullValueException,c#,C#,我在尝试执行包含操作时遇到一个奇怪的异常,即一个实例在另一个实例中。google上没有关于此异常的结果,并且两个几何体实例都不是空的,并且都是有效的 var inside = gridShape.Shape_MGA.Contains(shape.shapeMga) Unhandled Exception: System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be cal
包含
操作时遇到一个奇怪的异常,即一个实例在另一个实例中。google上没有关于此异常的结果,并且两个几何体实例都不是空的,并且都是有效的
var inside = gridShape.Shape_MGA.Contains(shape.shapeMga)
Unhandled Exception: System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values.
at System.Data.SqlTypes.SqlBoolean.get_Value()
at lambda_method(Closure , Object )
at System.Data.Entity.SqlServer.SqlTypesAssembly.SqlBooleanToBoolean(Object sqlBooleanValue)
at System.Data.Entity.SqlServer.SqlSpatialServices.Contains(DbGeometry geometryValue, DbGeometry otherGeometry)
at System.Data.Entity.Spatial.DbGeometry.Contains(DbGeometry other)
at ReprojectShapes.Program.ConvertSourceShapesToLocalGrid(String geoConnStr, List`1 shapesToReproject) in C:\dev\geology-workbench\WorkbenchService\Reproject
Shapes\Program.cs:line 152
at ReprojectShapes.Program.Main(String[] args) in C:\dev\geology-workbench\WorkbenchService\ReprojectShapes\Program.cs:line 33
答案是这两个实例的SRID是不同的 一个是以天真的方式创建的:
shape.shapeMga = DbGeometry.FromText(sourceShape1.shapeWkt);
另一种更“正确”的方式:
gridShape.Shape_MGA = DbGeometry.FromText(gridExtentsWkt, 28350);