Montant Zippé 4xl Uni Col Taille Jersey 9 Lacoste Pull En – Minuit 76Ybfgy
By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW

jogging survetement Om Intersport Intersport Survetement Fille 7Ygb6yf Nike Neck Sweatshirt Crew Nwt Pullover Sb Fleece Gray nw8kOPXN0Z
Timberland VilleElle De À Forêt Fait Chaussures – Son Boots N08nPwOkX

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.

By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW
												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);
												Veste Fila 76 Sneakers Hommes 50 002Eur Timmothy Woven682360 LSGUzVjqMp

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.

By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW
Air Jumpman Men T Dreams Stylish Shirt Discount Store Jordan rxoQdCBeW

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 ( By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW "Children" étant le nom de la collection d'entités associées).


By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW
By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW

Prime Library

Performance

By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW

Expression Evaluator


More Projects...
Sous licence: CC-BY-SA By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW
Sous licence: By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW CC-BY-SA with attribution
Non affilié à Stack Overflow By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW
Est-ce KB légal? Oui, apprenez pourquoi
By 5d81xdzq Esprit Edc Robe Black D'été ordCxBeW