1

Je travaille sur une application Silverlight. Il utilise les services WCF pour transmettre les entités EF 4 Self Tracking d'un client à un autre.
Les méthodes de lecture fonctionnent correctement pour servir les collections d'entités Trackable au client Silverlight à partir des services WCF. Même les mises à jour de base fonctionnent correctement. Je peux modifier une propriété de "OfficeEntity" et la passer en tant que paramètre à une méthode de mise à jour WCF. Le problème que nous avons est lorsque nous mettons à jour l'une des collections de l'entité, nous obtenons l'erreur de désérialisation ci-dessous. Par exemple, si "OfficeEntity" a une propriété de navigation "Locations" qui est une collection de "LocationEntity" et que nous ajoutons un nouveau "Location" à la propriété "Locations" et que nous l'enregistrons, nous obtenons l'exception de désérialisation.WCF, Silverlight 5, entités de suivi automatique et (dé) sérialisation

officeEntity.Locations.Add (nouvel emplacement() {LocationName = "Test 1"});

client.SaveAsync (officeEntity);

Détails de l'exception:

Le formatter a lancé une exception tout en essayant de désérialiser le message: Il y avait une erreur en essayant de désérialiser paramètre: OfficeEntity. Le message InnerException> était 'Une erreur s'est produite lors de la désérialisation de l'objet de type Entities.OfficeEntity. Élément de fin 'ObjectsAddedToCollectionProperties' de l'espace de noms> 'http://schemas.datacontract.org/2004/07/Entities' attendu. élément trouvé 'b: AddedObjectsForProperty' de l'espace de noms> 'http://schemas.datacontract.org/2004/07/Entities'. '

Il semble que le problème est la désérialisation des propriétés de suivi des modifications. Des idées sur ce qui cause cela ou où je peux le réparer?

Merci, Jason

+0

Avez-vous créé le proxy silverlight à l'aide ajouter une référence de service? –

+0

Oui. Le proxy a été généré via le "Ajouter une référence de service". – IUJPJ

Répondre

0

entités de suivi auto ont des problèmes avec le suivi si les entités générées réelles ne sont pas utilisés dans le client - je blogué à ce sujet here.

Je ne sais pas si cela est à l'origine de vos problèmes de sérialisation, mais aura certainement un impact sur vous être en mesure d'utiliser des entités auto-suivi

+0

Merci Richard. Le lien que vous avez fourni ne semble pas fonctionner. Les entités se trouvent dans leur propre bibliothèque de classes Silverlight et sont référencées à la fois par le projet client Silverlight et le projet Web WCF. Les références de service ont été ajoutées en spécifiant de réutiliser les types dans les assemblys référencés. – IUJPJ

+0

Correction du lien, mais il semble que vous ayez configuré les choses pour éviter le problème. Cela peut valoir la peine de vérifier le fichier reference.cs juste pour vérifier –

Questions connexes