Иллюстрированный самоучитель по Architecture .NET

Получение информации о схеме размещения данных в объекте DataTabie (Таблица данных)

Обратите внимание на ограничение в таблице BookCategories (Категории книг) с именем, сгенерированным системой. Когда вы внимательно просмотрите исходный код программы, то убедитесь, что эти ограничения в ней не добавляются. Откуда же они берутся? Если бы вы просмотрели содержимое соответствующего объекта, то увидели бы, что ограничение наложено на столбец LibraryofCongressNumber. Система посчитала, что, поскольку столбец CategoryName является внешним ключом для другой таблицы, то значения в столбце LibraryOfCongressNumber должны быть уникальными.

Можно также просмотреть коллекцию связей Relations (Отношения) объекта DataSet (Набор данных). При этом можно узнать, какие таблицы являются предками, и какие именно столбцы в них участвуют в образовании связей. То же самое можно сделать и для таблиц-потомков. Приведем соответствующий фрагмент примера DataEditing.

pEnum = ds › Relations › GetEnumerator(); // Отношения
while (pEnum › MoveNext())
{
DataRelation *dr =
dynamic_cast<DataRelation *>(pEnum › Current);
DataTable ^parentTable = dr › ParentTable;
DataTable *childTable = dr › ChildTable;
Console::WriteLine(
" Relation: {0} ", dr › RelationName); // Отношение
Console::WriteLine(
ParentTable: {0, -10}", parentTable);
Console::Write(" Columns: ");
// Столбцы forfint j =0; j < dr › ParentColumns.Length; j++)
Console::Write(// Запись
{0, – 10}",
dr › ParentColumns[j] › ColumnName);
Console::WriteLine(); Console::WriteLine(
ChildTable: (0, -10}", childTable);
Console::Write(" Columns: "); // Запись
forfint j = 0; j < dr › ChildColumns.Length; j++)
Console::Write(// Запись
{0, -10}",
dr › ChildColumns[j] › ColumnName); Console::WriteLine(); }

Программа напечатает:

Output Relations between tables in the DataSet…
Relation: Category › BookCategones Relation ParentTable: Categories
Columns: Category ChildTable: BookCategories
Columns: CategoryName Relation: Book
Category
LOC › Book LOG Relation ParentTable: BookCategories
Columns: LibraryofCongressNumber
ChildTable: Books
Columns: LibraryofCongressNumber

А вот и перевод:

Отношения между таблицами в Наборе данных…
Отношение: Категория › Отношение
Категории книг ParentTable: Категории
Столбцы: Категория ChildTable: Категории книг
Столбцы: CategoryName Отношение: Отношение
Категория книги LOC › Book LOC ParentTable: Категории книг
Столбцы: Номер в Библиотеке Конгресса ChildTable: Книги
Столбцы: Номер в Библиотеке Конгресса
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.