1

从 SQL Server 存储过程“sp_help”的结果中,我们得到一个包含几个表的数据集。七,如果我是正确的。其中之一包含有关约束的信息。每个外键由该表中的两个连续行记录。第一行包含约束类型、名称和其他详细信息。它后面是一个空行,除了一列“constaint_keys”,它包含约束的列名引用。

其他约束类型在一行中描述。

关于如何使用 Linq 以某种方式“扁平化”这些信息的任何想法,我们可以确定任何由两行组成的对实际上是由行 {n, n + 1} 组成的

感谢您的帮助!

4

2 回答 2

3

通过两个收集 IEnumerable 的元素:

data.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index / 2)

于 2012-10-29T13:14:35.300 回答
0

您可以使用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
于 2012-10-29T13:50:43.930 回答