У меня есть таблица с именем Права доступа, который определяется в наборе данных с именем _permissionsSet и имеет 3 колонки: PermissionGroup, прав, 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 в моем datatable.
Кто-нибудь знает, почему это происходит?
Возможно, мне что-то не хватает, но я не уверен, что факт, что свойство DataTable.PrimaryKey возвращает простой несортированный массив объектов DataColumn, имеет значение. Я хочу, чтобы первый элемент в моем массиве ключей был первым столбцом в первичном ключе, второй - вторым и т. Д. – P2000
Whe Я пытаюсь использовать метод Rows.find, параметры, которые мне нужно передать, должны быть в том же порядке, что и в свойстве Permissions.PrimaryKey. Это кажется неправильным, поскольку я устанавливаю свойство PrimaryKey в массив с элементами в том порядке, в котором они мне нужны. – P2000