2012-06-04 56 views
1

我爱Linqpad。有没有办法从实体转储中获取XML文档而不是HTML?有没有办法从实体转储中获取XML文档而不是HTML?

我想用LinqPad.Util创建一个XML文档而不是LinqToSql Changeset上的HTML文档。我尝试了很多方法来使变更集序列化失败。 Linqpad util CreateXhtmlWriter的效果很好,但我更喜欢它是一个XML文档。有关如何快速做到这一点的任何想法?

回答

2

现在,LINQPad中没有任何东西将任意对象图转储到XML。但是,您应该能够使用扩展方法轻松完成您所描述的内容。转到我的分机在LINQPad,写这样的方法:

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(); 
相关问题