Sweat Nike Pas Cher Cdiscount Achat Vente 1FJcKl
Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY

Tiger Sweatshirt Sweatshirt Adidas Dabbing Tiger Dabbing Adidas Sweatshirt Tiger Dabbing Adidas EHWYeI2D9b Pro Blanc Course Femme Pantalons Nike Tight Pour Warm 0vmNnw8
Camel – Sezane Joe Élégantes Populaires Manteau Vestes wX8n0ZNPkO

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.

Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY
												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);
												Nike 19 Marine Arbitre Pant Bv5836 Adulte Woven Pantalon Academy Club XnPOk80w

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.

Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY
Eggo Things Hoodie Eleven Eggo Hoodie Things Stranger Eleven Eleven Stranger OTkPZiuX

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 ( Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY "Children" étant le nom de la collection d'entités associées).


Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY
Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY

Prime Library

Performance

Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY

Expression Evaluator


More Projects...
Sous licence: CC-BY-SA Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY
Sous licence: Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY CC-BY-SA with attribution
Non affilié à Stack Overflow Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY
Est-ce KB légal? Oui, apprenez pourquoi
Full Zip Ink Legend Adidas Originals Hoody Calfornia 6gvbf7yY