【问题标题】:How to create GeometryLineString with System.Spatial in c# 4.5如何在 c# 4.5 中使用 System.Spatial 创建 GeometryLineString
【发布时间】:2013-10-10 13:01:57
【问题描述】:
我正在尝试在 sql 2012 中使用 Geometry 数据类型创建和存储线,因为我从未使用过这种数据类型我想知道如何在 C# 中操作数据,然后我找到了 System.Spatial。
MSDN Link Here
但我找不到任何示例(可能我仍在搜索),很高兴知道是否有人了解此主题或有任何有用的链接可与示例或演示共享。
【问题讨论】:
标签:
c#
visual-studio-2012
entity-framework-5
.net-4.5
spatial
【解决方案1】:
System.Spatial 与实体框架不兼容。创建它是为了通过 WCF 数据服务支持 OData 上的空间类型。更多here。
因此您需要使用DbGeometry 类。
问题在于您使用的是 Entity Framework 5 和 C# 4.0。您需要使用 Entity Framework 6 或 C# 4.5,因为您当前的“混合”不支持空间数据。
有效配置:
- 带有 C# 4.5 的实体框架 5
- 带有 C# 4/4.5 的实体框架 6
之后,您可以像这样创建一个行字符串:
var line = DbGeometry.FromText("LINESTRING (30 10, 10 30, 40 40)");
文本使用WKT 表示法。