在 f# 中,我尝试创建一个 SqlGeography 类型并将其保存到记录中。 在运行时调用 SubmitChanges 时,会返回以下错误消息。
此外,如果重要的话,我正在使用 LinqPad。
InvalidCastException:无法从类型转换 键入“Microsoft.SqlServer.Types.SqlGeography” 'Microsoft.SqlServer.Types.SqlGeography'。
let dc = new TypedDataContext()
let lat = 45.523062
let long = -122.676482
let srid = 4326
let property = query {
for prop in dc.Property do
where (prop.PropertyID = 15957)
select prop
exactlyOne
}
let sqlGeogBuild = new SqlGeographyBuilder()
sqlGeogBuild.SetSrid(srid)
sqlGeogBuild.BeginGeography(OpenGisGeographyType.Point)
sqlGeogBuild.BeginFigure(lat, long)
sqlGeogBuild.EndFigure()
sqlGeogBuild.EndGeography()
property.Location <- sqlGeogBuild.ConstructedGeography.MakeValid()
//property.Dump()
dc.SubmitChanges()
这个问题是在 2016 年 4 月提出的,并且正在使用 SQLProvider,该 SQLProvider 在 2020 年 5 月添加了对 MSSQL 地理类型的支持。