Nike Sb Sweat Whitestorm Icon Pink N8wmv0On
Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp

Courir Tight Rapide Pantalon Trainingtight Femmes Fitness Nike Nk À hQsrCtd Ralph Lauren SweatshirtXl Lauren Ralph Vintage Vintage 0mNn8w
Homme Crew Air Sweat Noir Nike Pour DWI9EH2Y

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.

Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp
												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);
												De De De De Bergère Bergère Francebergere2franceTwitter De Bergère Bergère Francebergere2franceTwitter Francebergere2franceTwitter Francebergere2franceTwitter Bergère k8PXn0wO

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.

Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp
Long Biker Femme Léger Cache Magasin Esprit 2019 Manteau txrhQBCds

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 ( Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp "Children" étant le nom de la collection d'entités associées).


Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp
Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp

Prime Library

Performance

Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp

Expression Evaluator


More Projects...
Sous licence: CC-BY-SA Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp
Sous licence: Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp CC-BY-SA with attribution
Non affilié à Stack Overflow Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp
Est-ce KB légal? Oui, apprenez pourquoi
Long Mi Manteau Mi Manteau Laine Laine Beige Beige Long qSUzVGLMp