Je sérialise un objet linq via WCF. Le dbml est configuré pour la sérialisation unidirectionnelle.Sérialisation d'entités linq avec WCF
Mes objets sont assez simples: Budget a une collection de BudgetLineItems. Chaque élément BudgetLineItem a un ItemCateogry.
Les éléments Budget/BudgetLineItems sont correctement numérotés. ItemCateogry sur chaque BudgetLineItem ne le fait pas, cependant. J'ai remarqué par défaut, linq n'a pas ajouté un [DataMember] sur ItemCategory pour chaque BudgetLineItem. Je l'ai ajouté manuellement et j'ai également supprimé toute référence circulaire possible sur l'entité ItemCategory avec [IgnoreDataMember]. Pas de chance, cependant.
questions:
peut WCF, par défaut, SERIALIZE many-to-one relations, ou suis-je manque juste quelque chose? Je sais que les données sérialisées seraient plutôt redondantes avec les données ItemCategory dupliquées pour chaque BudgetLineItem, mais c'est très bien.
Ai-je besoin de faire un DataContractSerializer personnalisé pour cela?
** EDIT ** En fait, qui a fait le travail (en ajoutant [DataMember]), je viens de ne pas mettre à jour la référence de service sur le client (duh).
NOUVELLE QUESTION: Est-il possible d'indiquer au concepteur linqtosql de gérer les champs [DataMember] et [IgnoreDataMember] sur une entité que le concepteur génère? Sinon, je devrai les mettre à jour chaque fois que j'enregistre le dbml.
Merci pour l'info. Pour une sérialisation réussie, nous avons dû ajouter un [DataMemberIgnore] à tout accessoire qui était récursif (généralement la référence au parent), car ceux-ci ne seront pas sérialisés. Cela a incité à changer le dbml, qui bien sûr sera écrasé à chaque changement. Cela fonctionne, mais pas très homogène. Comme vous le savez, les objets sérialisés sont _huge_. heureusement, ce n'était que pour une preuve de concept (SQLRS2008 consommant une couche WCF à nos services pour nous débarrasser de la logique redudant) – ericvg
OK non prob. Bien vérifier ma procédure de clonage, j'espère que cette route vous aidera. – GONeale
Génial! Sauf que votre blog est parti :( – Moulde