現在、LINQPadには、任意のオブジェクトグラフをXMLにダンプするものはありません。ただし、拡張メソッドを使用すると、説明したことを非常に簡単に実行できるはずです。LINQPadのMyExtensionsに移動し、次のようなメソッドを記述します。
public static XElement ToXml (this ChangeSet cs)
{
return new XElement ("ChangeSet",
new XElement ("Inserts", cs.Inserts.Select (e => EntityToXElement (e))),
new XElement ("Updates", cs.Updates.Select (e => EntityToXElement (e))),
new XElement ("Deletes", cs.Deletes.Select (e => EntityToXElement (e))));
}
static XElement EntityToXElement (object o)
{
return new XElement (
o.GetType().Name,
o.GetType().GetFields ().Select (f => new XElement (f.Name, f.GetValue (o))));
}
次に、どのクエリでも、次のように実行できます。
GetChangeSet().ToXml().Dump();