Как создать ассоциацию (связь) между классами LINQ to SQL (реляционный конструктор объектов)

Ассоциации между классами сущностей в LINQ to SQL аналогичны отношениям между таблицами в базе данных. Ассоциации между классами сущностей можно создавать, используя диалоговое окно Редактор ассоциаций.

Можно выбирать родительский класс и дочерний класс, когда диалоговое окно Редактор ассоциаций используется для создания ассоциации. Родительский класс представляет собой класс сущностей, который содержит первичный ключ; дочерний класс представляет собой класс сущностей, который содержит внешний ключ. Например, если были созданы классы сущностей, которые сопоставляются таблицам Northwind Customers и Orders, то класс Customer будет родительским классом, а класс Order будет дочерним классом.

Примечание

При перетаскивании таблиц из обозревателя серверов или обозревателя баз данных в Реляционный конструктор объектов (Реляционный конструктор объектов) ассоциации создаются автоматически на основе связей по внешнему ключу, существующих в базе данных.

После создания ассоциации при выборе ассоциации в реляционном конструкторе объектов имеются некоторые конфигурируемые свойства в окне Свойства. (Ассоциация представляет собой линию между связанными классами). В следующей таблице представлены описания свойств ассоциации.

Свойство

Описание

Количество элементов

Контролирует, представляет ли ассоциация отношение "один-ко-многим" или отношение "один-к-одному".

Дочернее свойство

Определяет, создавать ли свойство на основе родителя, который является коллекцией, или на основе ссылки на дочерние записи на стороне внешнего ключа ассоциации. Например, в ассоциации между таблицами Customer и Order, если Дочернее свойство установлено на значение True, то свойство с именем Orders создается на основе родительского класса.

Родительское свойство

Свойство на основе дочернего класса, который ссылается на связанный родительский класс. Например, в ассоциации между таблицами Customer и Order на основе класса Order создается свойство с именем Customer, которое ссылается на связанного с заказом клиента.

Свойства участия

Отображает свойства ассоциации и выводит кнопку с многоточием (...), которая заново открывает диалоговое окно Редактор ассоциаций.

Уникальный

Указывает, имеют ли внешние целевые столбцы ограничение уникальности.

Для создания ассоциации между классами сущностей

  1. Щелкните правой кнопкой мыши по классу сущностей, который представляет родительский класс в ассоциации, укажите пункт Добавить, и потом щелкните Ассоциация.

  2. Убедитесь, что выбран правильный Родительский класс в диалоговом окне Редактор ассоциации.

  3. Выберите Дочерний класс в поле со списком.

  4. Выберите Свойства ассоциации, которые связывают классы. Обычно, это сопоставляется с отношением внешнего ключа, определенным в базе данных. Например, в ассоциации между таблицами Customer и Order Свойствами ассоциации являются CustomerID для каждого класса.

  5. Нажмите кнопку OK для создания ассоциации.

См. также

Задачи

Пошаговое руководство. Создание классов LINQ to SQL (реляционный конструктор объектов)

Как представить первичные ключи (LINQ to SQL)

Основные понятия

Общие сведения о реляционном конструкторе объектов

Методы DataContext (реляционный конструктор объектов)

Другие ресурсы

LINQ to SQL