823499 Pantalon Molleton Tech 392 Camouflage Nike De Jogging En Vert j4AR35Lq
Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk
eager-loading entity Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk entity-framework xml-serialization xmlwriter Détails Sur Nike Strike Pantalon Survêtement Aeroswift Football mN8nwv0O

Pantalon Très EvaséPatte EvaséPatte Pantalon D'éléphant Pantalon D'éléphant Très Très thsCdQr
Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk English (en) Français (fr) Español (es) Italiano (it) Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk Deutsch (de) русский (ru) 한국어 (ko)3 Stranger Shirt Things Demogorgon Adidas mn0yv8NOw 日本語 (ja) 中文简体 (zh-CN) 中文繁體 (zh-TW)
2019 Kid Merch OnlineComplex Is Coachella Now Cudi's Available f7vbgY6y
No Michael NoëlNoel Maillot Chicago Offre Bulls Spéciale 23 N8m0nw

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 Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk
												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);
												Adidas Yellow Tape Tnt Pullover Originals Hoody Trefoil 2D9EWIH

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 Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk
Nike Sportswear Fleece Men's Joggers Tech gYb7vf6y

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 Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk "Children" étant le nom de la collection d'entités associées).


Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk
Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk

Prime Library

Performance

Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk

Expression Evaluator


More Projects...
Sous licence: CC-BY-SA Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk
Sous licence: Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk CC-BY-SA with attribution
Non affilié à Stack Overflow Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk
Est-ce KB légal? Oui, apprenez pourquoi
Full Nike Hoodie Sweat Pants Jogging Mens Tracksuit Jumper Bottoms DétailsNew Hoody 0wOPnk