.Net 4.5 と Entity Framework 5.0 を使用しています。Code-First アプローチを使用して作成された 3 つの基本的なエンティティ クラスがあります。今、私はそれをシリアル化しようとしていますが、できません。
クラスの基本は次のとおりです。
基本クラス
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 をシリアライズ/デシリアライズするにはどうすればよいですか? それは可能ですか?