gpt4 book ai didi

c# - Entity Framework 6 Dbgeometry.WellKnownValue.WellKnownBinary 未被填充

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:10 26 4
gpt4 key购买 nike

我正在使用 Entity Framework 6 进行 crud 操作,包括 DbGeometry 属性。该属性包含一个从 WellKnownText 创建的多边形。

DbGeometry.PolygonFromText("POLYGON((1.00 1.00, 1.00 80.00, 80.00 80.00, 80.00 1.00, 1.00 1.00))", 27700);

保存实体时,二进制数据存储在空间数据库中。但是,当检索 WellknownValue 时,正在使用 WellKnownText 填充,但是 Dbgeometry.WellKnownValue.WellKnownBinary 属性为 null

(会在这里张贴图片但没有足够的信誉点:( )

当然,这应该从数据库中的二进制文件中填充。我已尝试通过 AsBinary() 方法设置字段但没有成功。

更新

谢谢约翰,但不幸的是,这也不起作用。我试过:

Property.WellKnownValue.WellKnownBinary = Property.AsBinary();

仍然使用 QuickWatch 窗口将 Property.WellKnownValue.WellKnownBinary 保留为 null

我也试过了

byte[] byteVariable = Property.AsBinary();

这确实创建了一个 93 字节长的字节数组,我已粘贴在下面,但是对于它应该包含的内容来说这似乎是空的。

1,3,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,240,63,0,0,0,0 ,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,84,64,0,0,0,0,0,0,84 ,64,0,0,0,0,0,0,84,64,0,0,0,0,0,0,84,64,0,0,0,0,0,0,240,63,0 ,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,

如果我然后尝试将该字节数组分配给 WellKnownBinary:

 Property.WellKnownValue.WellKnownBinary = byteVariable 

Property.WellKnownValue.WellKnownBinary 在使用 QuickWatch 窗口时仍然显示为 null

我的想法真的用完了:(

最佳答案

我不完全确定为什么 DbGeometry.WellKnownValue.WellKnownBinary 为 NULL,但没关系,数据以二进制格式存储在 SQL 中。

你实际上已经差不多了,除了 DbGeometry.AsBinary() 是一个 getter,而不是 setter。

因此,如果您确实需要它的值,只需使用 DbGeometry.AsBinary() 来检索值(作为字节数组)。

关于c# - Entity Framework 6 Dbgeometry.WellKnownValue.WellKnownBinary 未被填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23014337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com