我正在使用 .Net 4.5 和 Entity Framework 5.0。我有 3 个使用 Code-First 方法创建的基本实体类。现在我正在尝试序列化它并且无法。
以下是课程的基础知识:
基类
public class BaseEntity
{
[Key]
public int Id {get; set;}
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
派生类
public class ChildEntity : BaseEntity
{
public int ParentId { get; set; }
[ForeignKey("ParentId")]
public ParentEntity ParentEntity { get; set; }
public string Description { get; set; }
}
public class ParentEntity : BaseEntity
{
public virtual ICollection<ChildEntity> Rules { get; set; }
public RuleGroup()
{
this.Rules = new HashSet<ChildEntity>();
}
}
我的上下文类
public class MyDbContext : DbContext
{
public DbSet<ParentEntity> Parents { get; set; }
public DbSet<ChildEntity> Childs { get; set; }
public MyDbContext()
: base("MyDbContext")
{
}
}
我尝试使用以下方式进行序列化:
using (var context = new MyDbContext())
{
using (var writer = XmlWriter.Create(destinationFile))
{
var serializer = new XmlSerializer(typeof(List<Parents>));
serializer.Serialize(writer, context.Parents.ToList());
}
}
但看起来我无法序列化ICollection<T>
。
将其更改为List<T>
但仍然给我带来问题。
我怎样才能序列化\反序列化到\从 XML 这个简单的类结构?甚至可能吗?