也许我漏掉了什么。我有一个数据类型为"Geography“的sql服务器列。
我想在我的c#代码中使用DbGeography类型。有什么方法可以将sql的地理信息转换为dbgeography吗?
发布于 2013-04-18 23:30:01
很抱歉回复晚了--但是我在搜索其他东西的时候看到了这个。
只需执行以下操作:
SqlGeography theGeography;
int srid = 4326; // or alternative
DbGeography newGeography = DbGeography.FromText(theGeography.ToString(), srid);要反转,请执行以下操作:
DbGeography theGeography;
SqlGeography newGeography = SqlGeography.Parse(theGeography.AsText()).MakeValid();希望这能有所帮助!
发布于 2015-03-23 06:31:04
当性能很重要时,应该使用熟知的二进制代码,而不是熟知的文本:
var newGeography = DbGeography.FromBinary(theGeography.STAsBinary().Value);存在使用SRID的重载,如果这很重要的话。在我对1000个相当复杂的多边形进行的简单测试中,基于二进制的方法比基于文本的方法快4倍:
* Binary-based conversion
Run 1: 1948
Run 2: 1944
Run 3: 1959
Run 4: 1979
Run 5: 1988
Average: 1963.6
* Text-based conversion
Run 1: 8527
Run 2: 8553
Run 3: 8596
Run 4: 8535
Run 5: 8496
Average: 8541.4发布于 2014-05-22 22:29:49
如果您没有运行EF6,那么提供的解决方案似乎还可以。对于早期版本是可以的,但是对于EF6,我们不应该引用这个程序集。这让艾夫·利特发疯了。
https://stackoverflow.com/questions/15107977
复制相似问题