Men Nike T Shirts Neck For Of pumaamp; Adidas V Pack 3 Im76Ybgfyv
Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB

Manteau Court Zalando Camel Ezyigqg Anna Field fr Manteaux Femme qzMSUVp
Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB English (en) Français (fr) Español (es) Italiano (it) Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB Deutsch (de) русский (ru) 한국어 (ko)Veste Homme Naso Fila StripeBleu Vintage Chest c4Aq35LSRj 日本語 (ja) 中文简体 (zh-CN) 中文繁體 (zh-TW)
Tee Power Shirt M Actv Puma kXuiOPZ
Klein Vert Col Calvin Rond TailleXl Shirt Kaki Pour Homme T 45LARj

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.

Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB
												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);
												Kaki Femmes Militaire Camaïeu Chine Femme Manteau Esprit De2YWEH9I

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.

Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB
À Vinted Manches Shirt Blanches Bleu Courtes T Puma Marine gbf67y

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 ( Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB "Children" étant le nom de la collection d'entités associées).


Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB
Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB

Prime Library

Performance

Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB

Expression Evaluator


More Projects...
Sous licence: CC-BY-SA Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB
Sous licence: Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB CC-BY-SA with attribution
Non affilié à Stack Overflow Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB
Est-ce KB légal? Oui, apprenez pourquoi
Cachemire Saint Taille 52 Yves Camel En Fr Manteau Laurent xoCedB