_permissionsSet という名前のデータセットで定義されている Permissions という名前のテーブルがあり、3 つの列があります: PermissionGroup、Permission、PermissionLevel (この順序で)
このように3つの列すべてを含めるようにテーブルの主キーを設定しました
DataColumn[] keys = new DataColumn[3];
keys[0] = _permissionsSet.Permissions.Columns[0];
keys[1] = _permissionsSet.Permissions.Columns[1];
keys[2] = _permissionsSet.Permissions.Columns[2];
_permissionsSet.Permissions.PrimaryKey = keys;
「キー」の値を見ると、期待どおりです。
? keys
{System.Data.DataColumn[3]}
[0]: {PermissionGroup}
[1]: {Permission}
[2]: {PermissionLevel}
しかし、主キーを見ると、順序が変わっています!
? _permissionsSet.Permissions.PrimaryKey
{System.Data.DataColumn[3]}
[0]: {PermissionGroup}
[1]: {PermissionLevel}
[2]: {Permission}
これは、データテーブルで Rows.find メソッドを使用する場合に明らかな意味を持ちます。
なぜこれが起こっているのか誰にも分かりますか?