WCF、Silverlight 5、自跟踪实体和(反)序列化

WCF、Silverlight 5、自跟踪实体和(反)序列化,silverlight,wcf,entity-framework-4,self-tracking-entities,Silverlight,Wcf,Entity Framework 4,Self Tracking Entities,我正在研制Silverlight应用程序。它使用WCF服务在客户端和服务器之间来回传递EF4自跟踪实体。 Read方法可以很好地将可跟踪实体集合从WCF服务提供给Silverlight客户端。即使是基本的更新也能正常工作。我可以修改OfficeEntity的属性,并将其作为参数传递给WCF更新方法。 我们遇到的问题是,当我们更新一个实体的集合时,会出现以下反序列化错误。例如,如果OfficeEntity有一个导航属性Locations,它是LocationEntity的集合,我们向Locatio

我正在研制Silverlight应用程序。它使用WCF服务在客户端和服务器之间来回传递EF4自跟踪实体。 Read方法可以很好地将可跟踪实体集合从WCF服务提供给Silverlight客户端。即使是基本的更新也能正常工作。我可以修改OfficeEntity的属性,并将其作为参数传递给WCF更新方法。 我们遇到的问题是,当我们更新一个实体的集合时,会出现以下反序列化错误。例如,如果OfficeEntity有一个导航属性Locations,它是LocationEntity的集合,我们向Locations属性添加一个新位置并保存它,那么我们将获得反序列化异常

officeEntity.Locations.Addnew位置{LocationName=Test 1}

client.SaveAsyncofficeEntity

例外情况详情:

格式化程序在尝试反序列化消息时引发异常: 尝试反序列化参数时出错:OfficeEntity。InnerException>消息无效 '反序列化Entities.OfficeEntity类型的对象时出错。 命名空间>”中的结束元素“ObjectsAddedToCollectionProperties”http://schemas.datacontract.org/2004/07/Entities”他说。 从命名空间>”中找到元素“b:AddedObjectsForProperty”http://schemas.datacontract.org/2004/07/Entities“.”

问题似乎在于反序列化更改跟踪属性。你知道是什么原因造成的吗?我可以在哪里解决

谢谢,
Jason

如果客户机中没有使用实际生成的实体,则自跟踪实体会出现跟踪问题-我在博客中对此进行了讨论


不确定这是否是序列化问题的根源,但肯定会影响您使用自跟踪实体

是否使用添加服务引用创建silverlight代理?是的。代理是通过添加服务引用生成的。谢谢Richard。不过,您提供的链接似乎不起作用。这些实体位于它们自己的Silverlight类库中,由Silverlight客户端项目和WCF web项目引用。服务引用被添加为指定重用被引用程序集中的类型。修复了链接,但听起来好像您已经设置好了避免该问题的方法-可能值得检查reference.cs以进行验证