1

我正在使用 sql express 2008 和 vs2008,用 c# 编写。

我有一个带有 Geography 列的 db 表,我需要将我收集的 gps 数据放入其中。当我尝试为此表创建实体框架映射时,它只是忽略了该列,并发出一些关于无法映射此类列类型的警告。然后我查看了 nHibernate.Spatial 项目,但它似乎只翻译几何类型,而不是地理。那里没有运气。有人告诉我,我可以使用将 Geography 转换为 VarBinary 的视图,然后在创建的实体类中添加另一个将二进制反序列化回 Geography 的属性。我想这将适用于从数据库中读取数据,但我还需要将这些行插入到我的数据库中,并且我无法将行添加到视图中。我可以使用其他一些技巧来轻松地在我的 c# 代码中从我的数据库中读取和写入地理数据吗?

4

2 回答 2

1

我对 EF 了解不多,但 NHibernate 允许您使用IUserType. Ray Houston 的博客上有一些关于它的内容。

根据Ayende 的示例,我已经成功地使用它来创建一个使用 XmlSerialization 到 Xml 字段的类型

于 2008-10-17T23:18:34.490 回答
0

此时 Entity Framework v1 不支持 SQL UDT - 2008 Spacial 类型为 UDT。

您可以使用 WKB (byte[]/varbinary) 存储您的 long/lat 数据。

附带说明一下,在 Microsoft MIX09 下一个版本(1.5 CTP)期间,我没有注意到对 UDT 的任何支持。也许我错过了什么。

于 2009-05-06T20:57:05.400 回答