1

我正在开发 Silverlight 应用程序。它使用 WCF 服务在客户端和服务器之间来回传递 EF 4 Self Tracking Entities。
读取方法可以很好地从 WCF 服务将 Trackable 实体集合提供给 Silverlight 客户端。即使是基本更新也能正常工作。我可以修改“OfficeEntity”的属性,并将其作为参数传递给 WCF 更新方法。我们遇到的问题是,当我们更新实体的集合之一时,我们会收到以下反序列化错误。例如,如果“OfficeEntity”有一个导航属性“Locations”,它是“LocationEntity”的集合,我们在“Locations”属性中添加一个新的“Location”并保存,我们会得到反序列化异常。

officeEntity.Locations.Add(new Location() {LocationName = "Test 1"});

client.SaveAsync(officeEntity);

异常详情:

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

看来问题在于反序列化更改跟踪属性。关于是什么原因或我可以在哪里解决它的任何想法?

谢谢,杰森

4

1 回答 1

0

如果客户端中未使用实际生成的实体,则自我跟踪实体在跟踪方面存在问题 - 我在此处发布了有关它的博客。

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

于 2011-08-16T17:42:54.987 回答