1

SQL Server ストアド プロシージャ 'sp_help' の結果から、いくつかのテーブルを含む DataSet を取得します。私が正しければセブン。それらの 1 つには、制約に関する情報が含まれています。各外部キーは、そのテーブル内の 2 つの連続する行によって文書化されます。最初の行には、制約タイプ、その名前、およびその他の詳細が含まれています。その後に、制約の列名参照を含む 1 つの列 'constaint_keys' を除いて、空の行が続きます。

その他の制約タイプは、1 行で説明されています。

Linq を使用してこの情報を「平坦化」する方法についてのアイデア。

ご協力ありがとうございました!

4

2 に答える 2

3

IEnumerable の要素を 2 で集めるには:

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 に答える