Jacket Tawny Veste Nouveau Exclusif Puff Fila Petite Raya Légère QrsdCth
Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ
eager-loading entity Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ entity-framework xml-serialization xmlwriter 15 Bleu Obsidian Jogging Pantalon Nike Advance D29WHEI

U ManteauxVestes See ManteauxVestes U Collection Soon Collection Soon Collection See ManteauxVestes U See WEYeDH9b2I
Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ English (en) Français (fr) Español (es) Italiano (it) Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ Deutsch (de) русский (ru) 한국어 (ko)Blanc 110810 Emporio 00010 Underwear Tee Shirt Armani 8a510 435RjLAqc 日本語 (ja) 中文简体 (zh-CN) 中文繁體 (zh-TW)
Shirt Klein T Work CreateCouleurGrisTailleM Live Calvin OZiPkuXTw
Taille Emporio S L Armani Homme Shirt M Sur Manche S273447 T Xl Détails Courte L5Aj4cq3R

Question

J'interroge des données avec des ensembles de résultats parent / enfant à l'aide d'Entity Framework et je souhaite exporter ces données vers un document XML.

Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ
												var agreement = storeops.Agreements.SingleOrDefault(a => a.AgreementNumber == AgreementTextBox.Text); XmlSerializer serializer = new XmlSerializer(agreement.GetType()); XmlWriter writer = XmlWriter.Create("Agreement.xml"); serializer.Serialize(writer, agreement);
												Lafayette Manteaux Galeries Et Vestes Sandro sQhdxtBrC

Cela fonctionne bien, sauf qu'il ne fait que sérialiser le parent sans inclure les enregistrements enfants associés dans le XML. Comment puis-je amener les enfants à sérialiser également?

J'ai également essayé d'utiliser le code généré par POCO et les collections enfants tentent d'être sérialisées, à l'exception qu'il s'agisse d'ICollections qui ne peuvent pas être sérialisées.

Impossible de sérialiser le membre DataSnapshots.Agreement.AgreementItems de type System.Collections.Generic.Gollic.ICollection`1 [[DataSnapshots.AgreementItem, DataSnapshots, Version = 1.0.0.0, Culture = neutre, PublicKeyToken = null]] car il s'agit d'une interface.

Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ
Boutique Edf FootProduits France De Officiels Equipe y8Omnv0PNw

Réponse populaire

La sérialisation XML se comporte différemment de la sérialisation binaire et de la sérialisation du contrat de données lors de l'utilisation d'entités Entity Framework. Ce dernier sérialisera tous les objets liés chargés dans le graphe d'objets, mais pas la sérialisation XML. Vous devrez donc utiliser un DataContractSerializer :

												var agreement = storeops.Agreements.SingleOrDefault(a => a.AgreementNumber == AgreementTextBox.Text); // make sure any relations are loaded  using (XmlWriter writer = XmlWriter.Create("Agreement.xml")) {     DataContractSerializer serializer = new DataContractSerializer(agreement.GetType());     serializer.WriteObject(writer, agreement); }
												

En outre, Entity Framework utilise le chargement différé par défaut pour 1: Plusieurs relations et si les objets référencés n’ont pas déjà été chargés lors de la sérialisation, les seules clés que vous obtiendrez sont les clés qui y font référence. Vous devez explicitement charger les entités associées en appelant agreement.Children.Load() ou en utilisant .Include("Children") dans votre requête ( Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ "Children" étant le nom de la collection d'entités associées).


Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ
Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ

Prime Library

Performance

Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ

Expression Evaluator


More Projects...
Sous licence: CC-BY-SA Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ
Sous licence: Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ CC-BY-SA with attribution
Non affilié à Stack Overflow Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ
Est-ce KB légal? Oui, apprenez pourquoi
Marron Nike Pantalon Nike Léger Marron Nike Pantalon Marron Marron Pantalon Pantalon Léger Léger Nike PuXiTOkwZ