我爱 Linqpad。有没有办法从实体转储中获取 XML 文档而不是 HTML?
我想使用 LinqPad.Util 在 LinqToSql Changeset 上创建 XML 文档而不是 HTML 文档。我尝试了很多方法来序列化变更集,但均未成功。Linqpad util CreateXhtmlWriter 效果很好,但我更喜欢它是一个 XML 文档。关于如何快速做到这一点的任何想法?
现在 LINQPad 中没有任何东西可以将任意对象图转储到 XML。但是,您应该能够使用扩展方法轻松完成您所描述的事情。转到LINQPad 中的My Extensions并编写如下方法:
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();