LINQ查询DataSet

mad*_*dan 2 c# linq traversal dataset

我想打印出Typed数据集中的表数以及与每个表关联的字段数以及关键字段{primary,foreign}.如何使用LINQ获取此信息?

Ada*_*itt 5

即使它是一个类型化数据集,您仍然可以使用DataSet的DataTables属性和DataTable的DataColumns属性.但是,要将Linq与这些一起使用,您必须调用.OfType<DataTable>().OfType<DataColumn>()在相应的属性上将其转换为IEnumerable <>,以便您可以对它们运行Linq查询.之后,您只需检查相应的属性即可找出什么是主键或外键.我不确定最后一部分是否存在这些值的属性,或者您是否必须检查数据关系以确定这一点.

编辑:DataTable上实际上有一个PrimaryKey属性,它将返回组成PrimaryKey的DataColumns数组.对于外键,我相信您必须深入了解DataRelations集合以确定哪些列是外键.