В моем проекте мы сериализуем отключенные сущности Linq-to-SQL (главным образом, чтобы сохранить их между обратными передачами). Код, используемый для этого, довольно прост:
public static string Serialize<P>(this P entity)
{
StringWriter writer = new StringWriter();
XmlTextWriter xmlWriter = new XmlTextWriter(writer);
DataContractSerializer serializer = new DataContractSerializer(typeof(P));
serializer.WriteObject(xmlWriter, entity);
return writer.ToString();
}
Работает нормально, но после десериализации все дочерние объекты EntityRef для этого объекта исчезают и заменяются просто значением внешнего ключа. Похоже, эта проблема связана с отсутствием двунаправленной сериализации.
Есть ли способ обойти эту проблему?