Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用LINQ迭代数据库并生成模式+;数据_.net_Linq_Linq To Xml_Database Schema - Fatal编程技术网

.net 使用LINQ迭代数据库并生成模式+;数据

.net 使用LINQ迭代数据库并生成模式+;数据,.net,linq,linq-to-xml,database-schema,.net,Linq,Linq To Xml,Database Schema,有没有一种简单的方法让LINQ遍历表中的每个字段并获取字段属性,如字段名?基本上,我只想创建一个表示db模式的简单xml文档,如下所示: <report> <nameoffirsttable> <field1name>field1data</field1name> <field2name>field2data</field2name> ...

有没有一种简单的方法让LINQ遍历表中的每个字段并获取字段属性,如字段名?基本上,我只想创建一个表示db模式的简单xml文档,如下所示:

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

Field1数据
Field2数据
...
字段数据
...
...

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

这将生成您使用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.

A
System.Data.DataSet
具有方法
WriteXml
WriteXmlSchema
,这些方法可以将数据集中的表作为Xml写出。这显然不是LINQ,所以我在评论中提到了它,不是作为一个答案,但也许它满足了您的需要。谢谢!这是一个很好的例子,演示了如何迭代模式。还需要一些技巧来关联数据,而不是使用字段的表名(j.DeclaringType.Type.name)。然而,这回答了我的问题,帮助我知道要搜索什么!