我正在使用Entity Framework查询具有父/子结果集的数据,并希望将此数据导出到XML文档。
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);
这个方法很好用,但是它只将父对象序列化到XML中,没有包含相关的子记录。如何让子对象也被序列化到XML中呢?
我还尝试过使用POCO生成的代码,但是子集合会尝试序列化,但它们是不能序列化的ICollections。
无法序列化成员DataSnapshots.Agreement.AgreementItems,因为它是一个接口类型System.Collections.Generic.ICollection`1[[DataSnapshots.AgreementItem, DataSnapshots, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]。
EntityCollection
被定义为public sealed class EntityCollection<TEntity> : RelatedEnd, ICollection<TEntity>, IEnumerable<TEntity>, IEnumerable, IListSource
,因此它绝对是一个集合。 - Joel C