Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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
C# 基于数据集的LINQ查询_C#_Linq_Dataset_Traversal - Fatal编程技术网

C# 基于数据集的LINQ查询

C# 基于数据集的LINQ查询,c#,linq,dataset,traversal,C#,Linq,Dataset,Traversal,我想打印出类型化数据集中的表数,以及与每个表关联的字段数和键字段{primary,foreign}。如何使用LINQ获取此信息?即使它是一个类型化的数据集,您仍然可以使用数据集的DataTables属性和DataTable的DataColumns属性。但是,要将Linq用于这些属性,必须对相应的属性调用.OfType或.OfType,将其转换为IEnumerable,以便可以对它们运行Linq查询。之后,您只需检查相应的属性,以确定什么是主键或外键。在最后一部分中,我不确定这些值是否有属性,或者

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

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

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

这并不是linq的真正用途。不知道是否可以从STD lol获得模式,如果可以,可以使用linq转换为xml。否则,它会一直反射。