【发布时间】:2012-09-05 13:13:35
【问题描述】:
我目前正在尝试将现有数据层迁移到 EF5。
在迁移之前,我们没有将地理数据存储在 SQL 空间数据结构中;由于 EF 现在支持空间数据,我们正在重构我们的代码。
我们正在使用自我跟踪实体在 silverlight 客户端和 WCF 服务之间交换数据。问题在于,由于 DbGeometry 类型无法序列化,因此无法与客户端共享我们的实体。
我希望我遗漏了一点,因此存在直接解决方案;另一方面,如果有人可以提供解决方法,我会很高兴。 (我们可以使用 DTO,但可能需要大量重构。)
【问题讨论】:
-
文档说
DbGeometry有SerializableAttribute-- msdn.microsoft.com/en-us/library/… ? -
好吧,这很奇怪,我读过它不可序列化。另一方面,由于无法在客户端和服务器之间共享实体,因此问题仍然存在。我在 silverlight 中找不到包含 DbGeometry 类型的 dll。
-
DTO 可能是您唯一的选择?
-
如果您使用的是 Sql Server,EF 空间类型实际上是由 Sql Server 空间类型支持的。如果您只需要这些类型,您可以通过安装 Sql Server 功能包 (microsoft.com/en-us/download/details.aspx?id=29065) 来安装它们。你所追求的是 Microsoft.SqlServer.Types。我不知道这些类型是否适用于 Silverlight。这个线程stackoverflow.com/questions/10117008/… 也可能有用。
标签: c# .net wcf silverlight entity-framework-5