Отношения между таблицами

Реляционная база данных — это совокупность взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа.

Объект DataRelation

DataRelation показывает отношение дочерний-родительский между двумя объектами DataTable, которые находятся в объекте DataSet. Для создания отношения нужно указать имя отношения, ссылаемый столбец родительской таблицы и ссылающийся столбец дочерней таблицы.

Создание отношения

Отношение может создавать ограничения Unique и AllowDBNull на родительской таблице и ограничение ForeignKeyConstraint на дочерней таблице. Ограничение PrimaryKey не создается!

Получение связанных данных

После создания связи между таблицами можно просматривать связанные данные, для чего у объекта DataRow есть ряд методов.

GetChildRows – этот метод позволяет получить массив DataRow[] дочерних записей относительно текущей строки.

GetParentRow – этот метод предназначен для получения единственной родительской строки относительно дочерней. Используется для таблиц со связью один ко многим.

GetParentRows – этот метод предназначен для получения массива
DataRow[] родительских строк относительно текущей строки.
Используется для таблиц со связью многие ко многим.

Правила удаления родительских строк

С помощью свойства DeleteRule ограничения ForeignKeyConstraint возможно задать действие, которое будет выполняться применительно к объектам, связанным с этим ограничением при удалении строки.

Это значит что свойство DeleteRule определяет, что произойдет со
столбцами в дочерней таблице при удалении строки из родительской таблицы.

Свойство DeleteRule принимает один из элементов перечисления Rule, определенном в пространстве имен System.Data

Правила обновления родительских строк

С помощью свойства UpdateRule ограничения ForeignKeyConstraint возможно задать действие, которое будет выполняться применительно к объектам, связанным с этим ограничением при изменении строки.

Это значит что свойство DeleteRule определяет, что произойдет со столбцами в дочерней таблице при изменении строки из родительской таблицы.
Свойство UpdateRule принимает один из элементов перечисления Rule, определенном в пространстве имен System.Data

Перечисление System.Data.Rule

Перечисление Rule определяет действие, которое должно выполнено для обеспечения ограничения ForeignKeyConstraint
Элементы перечисления Rule:

  • None – при удалении родительской строки никаких действий для дочерних строк не применять.
  • Cascade – при удалении родительской строки удалять все связанные дочерние строки.
  • SetNull – при удалении родительской строки связанным дочерним строкам присвоить значение DBNull.Value
  • SetDefault – при удалении родительской строки связанным дочерним строкам присвоить значение по умолчанию

Обновлено: 27.02.2019 — 12:45

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.