从 SQL Server 存储过程“sp_help”的结果中,我们得到一个包含几个表的数据集。七,如果我是正确的。其中之一包含有关约束的信息。每个外键由该表中的两个连续行记录。第一行包含约束类型、名称和其他详细信息。它后面是一个空行,除了一列“constaint_keys”,它包含约束的列名引用。
其他约束类型在一行中描述。
关于如何使用 Linq 以某种方式“扁平化”这些信息的任何想法,我们可以确定任何由两行组成的对实际上是由行 {n, n + 1} 组成的
感谢您的帮助!
从 SQL Server 存储过程“sp_help”的结果中,我们得到一个包含几个表的数据集。七,如果我是正确的。其中之一包含有关约束的信息。每个外键由该表中的两个连续行记录。第一行包含约束类型、名称和其他详细信息。它后面是一个空行,除了一列“constaint_keys”,它包含约束的列名引用。
其他约束类型在一行中描述。
关于如何使用 Linq 以某种方式“扁平化”这些信息的任何想法,我们可以确定任何由两行组成的对实际上是由行 {n, n + 1} 组成的
感谢您的帮助!
通过两个收集 IEnumerable 的元素:
data.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index / 2)
您可以使用Enumerable.Range()来获取要使用的索引范围:
var unflattenedConstraints = constraintsTable.Rows;
var constraints = from index in Enumerable.Range(0, unflattenedConstraints.Count / 2)
.Select(x => x * 2)
let row1 = unflattenedConstraints[index]
let row2 = unflattenedConstraints[index + 1]
// Combine the rows