【发布时间】:2010-12-29 02:34:34
【问题描述】:
我想打印出 Typed 数据集中的表数以及与每个表关联的字段数和关键字段 {primary,foreign}。如何使用 LINQ 获取这些信息?
【问题讨论】:
-
这不是 linq 的用途。不知道是否可以从 STD 获取架构(大声笑),如果可以的话,您可以使用 linq to xml。否则它会一直反射。
我想打印出 Typed 数据集中的表数以及与每个表关联的字段数和关键字段 {primary,foreign}。如何使用 LINQ 获取这些信息?
【问题讨论】:
即使它是一个类型化的数据集,您仍然可以使用 DataSet 的 DataTables 属性和 DataTable 的 DataColumns 属性。但是,要将 Linq 与这些一起使用,您必须在适当的属性上调用 .OfType<DataTable>() 或 .OfType<DataColumn>() 以将其转换为 IEnumerable 以便您可以对它们运行 Linq 查询。之后,您应该只需要检查相应的属性即可找出主键或外键。我不确定最后一部分是否存在这些值的属性,或者您是否必须检查数据关系才能确定这一点。
编辑: DataTable 上实际上有一个 PrimaryKey 属性,它将返回组成 PrimaryKey 的 DataColumns 的数组。对于外键,我认为您必须深入研究 DataRelations 集合以确定哪些列是外键。
【讨论】: