Linq to sql 未使用DataContractSerializer序列化连接的实体

Linq to sql 未使用DataContractSerializer序列化连接的实体,linq-to-sql,serialization,.net-4.0,datacontractserializer,Linq To Sql,Serialization,.net 4.0,Datacontractserializer,我正在使用LINQtoSQL,并且将序列化模式设置为单向 我有两个实体类,Country和City,具有一对多关系 DataContractSerializer serializer = new DataContractSerializer(typeof(IList<Country>), new[] { typeof(EntitySet<City>) // I have also tried with typeof(City) }); string x

我正在使用LINQtoSQL,并且将序列化模式设置为单向

我有两个实体类,
Country
City
,具有一对多关系

DataContractSerializer serializer = 
  new DataContractSerializer(typeof(IList<Country>), new[] { 
    typeof(EntitySet<City>) // I have also tried with typeof(City)
  });
string xml;
using (Db db = new Db()) {
  IList<Country> countries = db.Countries.ToList();
  // ... some manipulation of the list here, add/remove etc ...
  StringBuilder sb = new StringBuilder();
  using (XmlWriter writer = XmlWriter.Create(sb)) 
    serializer.WriteObject(writer, countries);
  xml = sb.ToString();
}
DataContractSerializer序列化程序=
新的DataContractSerializer(typeof(IList),新的[]{
typeof(EntitySet)//我也尝试过typeof(City)
});
字符串xml;
使用(Db=new Db()){
IList countries=db.countries.ToList();
//…此处对列表进行一些操作,添加/删除等。。。
StringBuilder sb=新的StringBuilder();
使用(XmlWriter=XmlWriter.Create(sb))
serializer.WriteObject(编写器,国家/地区);
xml=sb.ToString();
}
生成的XML字符串中有
国家
实体,但没有
城市
实体

如何解决此问题?

调用
ToList()
似乎是导致此问题的原因