Если DataKeyNames установлен в поле, не определенное как первичный ключ, то… - PullRequest
0 голосов
/ 21 июня 2009


1) Я заметил, что если установить GridView.DataKeyNames в поле, которое фактически не определено в качестве первичного ключа в источнике данных, элемент управления источником данных (или, возможно, GridView?) Каким-то образом узнает это поле установить в DataKeyNames на самом деле не первичный ключ. Я узнал об этом факте, когда открыл Настроить окно «Выбор оператора» (через всплывающее окно «Умные задачи» GridView * 1010 -> Настроить источник данных -> Настроить окно Выбор оператора -> Дополнительно ) и в окне отключены обе радиокнопки.

a) Так как же Asp.Net «выяснил», что поле, установленное в DataKeyNames , на самом деле не является первичным ключом?


b) Кроме того, не должен ли программист устанавливать DataKeyNames в любое поле, которое она выберет, даже если это поле не определено как первичный ключ в источнике данных?


1028 * спасибо *

1 Ответ

1 голос
/ 21 июня 2009

Итак, цель свойства DataKeyNames - уникально идентифицировать каждую строку данных в вашем наборе данных. Для этого ASP.NET необходимо убедиться на 100%, что это действительно действительно уникально идентифицируемый столбец (или набор столбцов), который вы предоставляете, и единственный, который можно действительно проверить, - это первичный ключ таблицы - это всегда будет уникальная идентификация строки (это само определение первичного ключа).

Я полагаю, именно поэтому ASP.NET настаивает на первичном ключе для DataKeyNames - любой другой столбец (или набор столбцов) не может быть проверен на действительность - поэтому лучше отказаться от них, чем наткнуться на проблемы, если это не однозначно идентифицирующий ключ .....

Марк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...