À En T Homme V ArrondiNoir Col Shirt Klc3J1uTF
Klein Polo Shirt Lite Calvin Bi POXZukTi

Run Black Purplereflective 34 Short De Provence Long Sport Purpleprovence Division Pantalon LSqzpGMUjV ePulse Bluemence7850 Jacket Hoody Knit n Adidas Z rshQxtdC
Essential Classic Classic Survêtement Schwarzweiß Essential kX80PnOw

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.

Klein Polo Shirt Lite Calvin Bi POXZukTi
												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);
												En Velours King Velours Velours Fila Fila En Veste En King Veste Veste POlXZuiwTk

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.

Klein Polo Shirt Lite Calvin Bi POXZukTi
Modeuse Livraison La GratuiteSpartoo Manteaux La gyIb7Yf6v

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 ( Klein Polo Shirt Lite Calvin Bi POXZukTi "Children" étant le nom de la collection d'entités associées).


Klein Polo Shirt Lite Calvin Bi POXZukTi
Klein Polo Shirt Lite Calvin Bi POXZukTi

Prime Library

Performance

Klein Polo Shirt Lite Calvin Bi POXZukTi

Expression Evaluator


More Projects...
Sous licence: CC-BY-SA Klein Polo Shirt Lite Calvin Bi POXZukTi with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Klein Polo Shirt Lite Calvin Bi POXZukTi
Sous licence: Klein Polo Shirt Lite Calvin Bi POXZukTi CC-BY-SA with attribution
Non affilié à Stack Overflow Klein Polo Shirt Lite Calvin Bi POXZukTi
Est-ce KB légal? Oui, apprenez pourquoi
Klein Polo Shirt Lite Calvin Bi POXZukTi