使用 LINQ 迭代数据库并生成架构的通用 XML 布局数据

发布于 2024-12-09 13:59:57 字数 615 浏览 0 评论 0原文

有没有一种简单的方法可以让 LINQ 迭代表中的每个字段并获取字段属性(例如字段名称)?基本上,我只想创建一个简单的 xml 文档来表示数据库模式,如下所示:

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

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

Is there an easy way to have LINQ iterate through each of the fields in a table and get field properties such as the field name? Basically, I want to just create a simple xml document that represents the db schema like so:

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

So far, all the examples I have seen in web searches have shown explicit references to named fields.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无言温柔 2024-12-16 13:59:57

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

This will produce the schema you outlined using 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))));

Just make sure to reference System.Data.Linq and System.Xml.Linq.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文