【问题标题】:Using LINQ to iterate through a database and generate a generic XML layout of schema + data使用 LINQ 遍历数据库并生成模式 + 数据的通用 XML 布局
【发布时间】:2011-10-13 17:48:46
【问题描述】:

是否有一种简单的方法可以让 LINQ 遍历表中的每个字段并获取字段属性,例如字段名称?基本上,我只想创建一个简单的 xml 文档来表示 db 架构,如下所示:

 <report>
      <nameoffirsttable>
           <field1name>field1data</field1name>
           <field2name>field2data</field2name>
           ...
           <field234name>field234data</field234name>
      </nameoffirsttable>
      <nameofsecondtable>
           ...
      </nameofsecondtable>
      <anothersecondtable>
           ...
      </anothersecondtable>
 </report>

到目前为止,我在网络搜索中看到的所有示例都显示了对命名字段的明确引用。

【问题讨论】:

  • A System.Data.DataSet 有方法 WriteXmlWriteXmlSchema 可以将 DataSet 中的表写为 XML。这显然不是 LINQ,所以我在评论中提到它,而不是作为答案,但也许它足以满足您的需求。

标签: .net linq linq-to-xml database-schema


【解决方案1】:

这将生成您使用 LINQ 概述的架构:

XElement report = new XElement("report", 
MyDataContext.Mapping.GetTables()
   .Select(i => 
      new XElement(i.TableName, 
          i.RowType.DataMembers
          .Select(j => new XElement(j.Name, j.DeclaringType.Type.Name))));

只要确保引用 System.Data.Linq 和 System.Xml.Linq。

【讨论】:

  • 谢谢!如何遍历模式的非常好的示例。关联数据仍然有点棘手,而不是使用字段的表名 (j.DeclaringType.Type.Name)。但是回答了我的问题并帮助我知道要搜索什么!
猜你喜欢
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 2011-05-02
  • 2018-11-13
  • 2012-11-16
  • 1970-01-01
相关资源
最近更新 更多