1

我正在開發Silverlight應用程序。它使用WCF服務將EF 4自跟蹤實體從客戶端傳遞到服務器。
閱讀方法正常工作,從WCF服務向Silverlight客戶端提供Trackable實體集合。即使基本更新工作正常。我可以修改「OfficeEntity」的屬性,並將其作爲參數傳遞給WCF更新方法。 我們遇到的問題是當我們更新一個實體的集合時,我們得到下面的反序列化錯誤。例如,如果「OfficeEntity」具有導航屬性「位置」,該位置是「位置實體」的集合,並且我們向「位置」屬性添加新的「位置」並保存它,則會得到反序列化異常。WCF,Silverlight 5,自追蹤實體和(de)序列化

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'。'

看來問題在於反序列化更改跟蹤屬性。任何想法是什麼導致這個或我可以修復它?

感謝, 傑森

+0

你創建一個使用添加服務引用Silverlight的代理產生影響? –

+0

是的。該代理是通過「添加服務參考」生成的。 – IUJPJ

回答

0

自我跟蹤實體與跟蹤問題,如果實際產生的實體不會在客戶端使用的 - 我的博客上講述它here

不知道這是在你的系列化問題的根源,但肯定會對你能夠使用自跟蹤實體

+0

謝謝理查德。您提供的鏈接似乎不起作用。這些實體位於其自己的Silverlight類庫中,並由Silverlight客戶端項目和WCF Web項目引用。添加了服務引用,指定重用引用程序集中的類型。 – IUJPJ

+0

修正了鏈接,但聽起來好像你已經設置了一些東西來避免這個問題 - 可能值得檢查reference.cs來驗證 –