Операции присоединения (Visual Basic)
Соединение двух источников данных — это связь объектов в одном источнике данных с объектами, которые имеют общий атрибут в другом источнике данных.
Соединение является важной операцией в запросах, направленных на источники данных, отношения которых друг к другу нельзя отследить напрямую. В объектно-ориентированном программировании оно может означать корреляцию между немоделируемыми объектами, например такими, как обратное направление одностороннего отношения. Примером одностороннего отношения является класс Customer, имеющий свойство типа City (город), в то время как класс City не имеет свойства, которое является коллекцией объектов Customer (клиент). В случае наличия списка объектов City для поиска всех клиентов в каждом городе можно использовать операцию соединения.
На платформе LINQ представлены методы объединения Join и GroupJoin. Они выполняют эквисоединения, или соединения, которые сопоставляют два источника данных на основе равенства их ключей. (Для сравнения Transact-SQL поддерживает операторы соединения, отличные от "равно", например оператор "меньше чем". В терминах Join реляционной базы данных реализует внутреннее соединение, тип соединения, в котором возвращаются только те объекты, которые имеют совпадение в другом наборе данных. Метод GroupJoin не имеет прямого эквивалента в терминах реляционных баз данных, но реализует надмножество внутренних соединений и левых внешних соединений. Левое внешнее соединение — это соединение, которое возвращает каждый элемент первого (левого) источника данных, даже если в другом источнике данных не имеется соответствующих элементов.
На следующем рисунке показано концептуальное представление из двух наборов и элементов, входящих в эти наборы, которые включены либо во внутреннее соединение, либо в левое внешнее соединение.
Методы
Имя метода | Description | Синтаксис выражения запроса Visual Basic | Дополнительные сведения |
---|---|---|---|
Присоединиться | Соединяет две последовательности на основании функций селектора ключа и извлекает пары значений. | From x In …, y In … Where x.a = y.a –или– Join … [As …]In … On … |
Enumerable.Join Queryable.Join |
GroupJoin | Соединяет две последовательности на основании функций селектора ключа и группирует полученные при сопоставлении данные для каждого элемента. | Group Join … In … On … |
Enumerable.GroupJoin Queryable.GroupJoin |
См. также
- System.Linq
- Общие сведения о стандартных операторах запроса (Visual Basic)
- Анонимные типы
- Формулировка запросов-объединений и запросов векторного произведения
- Предложение Join
- Практическое руководство. Присоединение содержимого из разнородных файлов (LINQ) (Visual Basic)
- Практическое руководство. Заполнение коллекций объектов из нескольких источников (LINQ) (Visual Basic)