Реферат: LINQ to XML
<span style=«font-size: 12pt; font-family: „Times New Roman“,»serif";">Министерство образования
<span style=«font-size: 12pt; font-family: „Times New Roman“,»serif";">Новокузнецкий филиал-институт ГОУ ВПО
<span style=«font-size: 12pt; font-family: „Times New Roman“,»serif";">«Кемеровский государственный университет»
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Факультет информационных технологий
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Кафедра математики и математического моделирования
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>LINQ
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>to<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>XML<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">реферат по дисциплине
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">«Современные технологии программирования»
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Выполнил:
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Студент группы ПМИ-072
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Шулаков Егор Валерьевич
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Проверил:
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">_____________________
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; font-family: „Times New Roman“,»serif";"> реферат
<span style=«font-size: 12pt; font-family: „Times New Roman“,»serif";"> защищен с оценкой “___”
<span style=«font-size: 12pt; font-family: „Times New Roman“,»serif";"> _______________________
<span style=«font-size: 8pt; font-family: „Times New Roman“,»serif";"> подпись руководителя
<span style=«font-size: 12pt; font-family: „Times New Roman“,»serif";"> “____”____________2011г.
<span style=«font-size: 12pt; font-family: „Times New Roman“,»serif";">
<span style=«font-family: „Times New Roman“,»serif";">
<span style=«font-family: „Times New Roman“,»serif";">
<span style=«font-family: „Times New Roman“,»serif";">Новокузнецк 2011
Содержание
1.<span style=«font: 7pt „Times New Roman“;»>
Введение…………………………………….…..…3
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">2.<span style=«font: 7pt „Times New Roman“;»>
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Основные операции запросов <span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>LINQ<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">……..............5<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">3.<span style=«font: 7pt „Times New Roman“;»>
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>XML<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">…………………………………………..……9<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">4.<span style=«font: 7pt „Times New Roman“;»>
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>LINQ<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> <span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>to<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> <span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>XML<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">…………………………………..…11<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">5.<span style=«font: 7pt „Times New Roman“;»>
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Конструирование деревьев <span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>XML<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">……...………...12<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">6.<span style=«font: 7pt „Times New Roman“;»>
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Имена <span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>XML<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">…………………………………...…..15<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">7.<span style=«font: 7pt „Times New Roman“;»>
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Извлечение значения элементов……………..….20<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">8.<span style=«font: 7pt „Times New Roman“;»>
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Список литературы………………………….……22
Введение
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif"; color: black;">По мере взросления платформы Microsoft .NET и поддерживаемых ею языков С# и VB. стало ясно, что одной из наиболее проблемных областей для разработчиков остается доступ к данным из разных источников. В частности, доступ к базе данных и манипуляции XML часто в лучшем случае запутаны, а в худшем — проблематичны.
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif"; color: black;">Проблемы баз данных многочисленны. Во-первых, сложность представляет то, что вы не можете программно взаимодействовать с базой данных на уровне естественного языка. Это приводит к синтаксическим ошибкам, которые не обнаруживаются вплоть до момента запуска. Неправильные ссылки на поля базы данных также не обнаруживаются. Это может пагубно отразиться на программе, особенно если произойдет во время выполнения кода обработки ошибок. Нет ничего хуже, чем крах механизма обработки ошибок из-за синтаксически неверного кода, который никогда не тестировался. Иногда это неизбежно из-за непредсказуемого поведения ошибки. Наличие кода базы данных, который не проверяется во время компиляции, определенно может привести к этой проблеме.
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif"; color: black;">Вторая проблема связана с неудобством, которое вызвано различными типами данных, используемыми определенным доменом данных, таким как разница между типами базы данных или типами данных XML и естественным языком, на котором написана программа. В частности, серьезно докучать могут времена и даты.
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif"; color: black;">Анализ, итерация и манипуляция XML могут быть достаточно утомительными. Часто фрагмент XML— это все, что вам нужно, но из-за W3C DOM XML API объект XmlDocument должен быть создан только для того, чтобы выполнять различные операции над фрагментом XML.
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif"; color: black;">Вместо того чтобы просто добавить больше классов и методов для постепенного восполнения этих недостатков, команда разработчиков Microsoft решила пойти на один шаг дальше в абстрагировании основ запросов данных из этих конкретных доменов данных. В результате появился LINQ. LINQ — это технология Microsoft, предназначенная для обеспечения механизма поддержки уровня языка для опроса данных всех типов. Эти типы включают массивы и коллекции в памяти, базы данных, документы XML и многое другое.
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Благодаря LINQ запрос теперь является одним из основных структурных элементов языка, подобно классам, методам, событиям и т. д./>
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Для разработчиков, создающих запросы, наиболее очевидная «встроенная в язык» часть LINQ — это выражение запросов. Выражения запросов составляются в соответствии с декларативным синтаксисом запроса, который был впервые предложен в C# 3.0. Синтаксис запроса позволяет выполнять достаточно сложную фильтрацию, упорядочение и операции группирования при работе с источниками данных, используя минимум программного кода. Можно использовать одинаковые базовые шаблоны запросов для запроса и преобразования данных в базах данных SQL, наборах данных ADO.NET, документах и потоках XML, а также в коллекциях .NET.
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 16pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Основные операции запросов LINQ
<span style=«font-size: 16pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Получение источника данных
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">В первую очередь в запросе LINQ нужно указать источник данных. В C#, как и в большинстве языков программирования, переменная должна быть объявлена до ее использования. В запросе LINQ первым идет предложение from для указания источника данных (customers) и переменная диапазона (cust).
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>//queryAllCustomers is an IEnumerable
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>var queryAllCustomers = from cust in customers
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";">select cust;<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Переменная диапазона схожа с переменной итерации в цикле foreach за исключением того, что в выражении запроса не происходит фактической итерации. При выполнении запроса переменная диапазона будет использоваться как ссылка на каждый последующий элемент в customers. Поскольку компилятор может определить тип cust, нет необходимости указывать его в явном виде. Дополнительные переменные диапазона могут быть введены предложением let. Дополнительные сведения см. в разделе Предложение let (справочник по C#).
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Фильтрация
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Возможно, наиболее распространенной операцией запроса является применение фильтра в виде логического выражения. Фильтр приводит к возвращению запросом только тех элементов, для которых выражение является истинным. Результат создается с помощью предложения
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>where<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">. Фильтр фактически указывает элементы для исключения из исходной последовательности. В следующем примере возвращаются только <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>customers<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">, находящиеся в Лондоне.<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>var queryLondonCustomers = from cust in customers
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> where cust.City == «London»
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> select cust;
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Для применения нужного числа выражений фильтра в предложении
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>where<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> можно использовать знакомые логические операторы <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>C<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"># <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>AND<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> и <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>OR<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">. Например, для получения только заказчиков из Лондона <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>AND<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> с именем <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>Devon<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> следует написать следующий код.<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>where cust.City==«London» && cust.Name == «Devon»
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Для получения заказчиков из Лондона или Парижа следует написать следующий код.
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>where cust.City == «London» || cust.City == «Paris»
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Порядок
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Часто целесообразно отсортировать возвращенные данные. Предложение orderby сортирует элементы возвращаемой последовательности в зависимости от компаратора по умолчанию для сортируемого типа. Например, следующий запрос может быть расширен для сортировки результатов на основе свойства Name. Поскольку Name является строкой, сравнение по умолчанию выполняется в алфавитном порядке от А до Я.
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>var queryLondonCustomers3 =
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> from cust in customers
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> where cust.City == «London»
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> orderby cust.Name ascending
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";">select cust;<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Группировка
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Предложение group позволяет группировать результаты на основе указанного ключа. Например, можно указать, что результаты должны быть сгруппированы по City так, чтобы все заказчики из Лондона или Парижа оказались в отдельных группах. В этом случае ключом является cust.City.
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>// queryCustomersByCity is an IEnumerable<IGrouping<string, Customer>>
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> var queryCustomersByCity =
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> from cust in customers
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> group cust by cust.City;
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> // customerGroup is an IGrouping<string, Customer>
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> foreach (var customerGroup in queryCustomersByCity)
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> {
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> Console.WriteLine(customerGroup.Key);
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> foreach (Customer customer in customerGroup)
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";">{<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> Console.WriteLine(" {0}", customer.Name);
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> }
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> }
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Когда запрос завершается предложением group, результаты представляются в виде списка из списков. Каждый элемент в списке является объектом, имеющим член Key и список элементов, сгруппированных по этому ключу. При итерации запроса, создающего последовательность групп, необходимо использовать вложенный цикл foreach. Внешний цикл выполняет итерацию каждой группы, а внутренний цикл — итерацию членов каждой группы.
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Если необходимо ссылаться на результаты операции группировки, можно использовать ключевое слово into для создания идентификатора, который можно будет запрашивать. Следующий запрос возвращает только те группы, которые содержат более двух заказчиков.
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>// custQuery is an IEnumerable<IGrouping<string, Customer>>
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>var custQuery =
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> from cust in customers
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> group cust by cust.City into custGroup
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> where custGroup.Count() > 2
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> orderby custGroup.Key
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";">select custGroup;<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";">
<span style=«font-size: 14pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Соединение
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">Операции соединения создают связи между последовательностями, неявно смоделированными в источниках данных. Например, можно выполнить соединение для поиска всех клиентов и распространителей, которые находятся в одном месте. В
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>LINQ<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> предложение <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>join<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> всегда работает с коллекциями объектов, а не непосредственно с таблицами базы данных.<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>var innerJoinQuery =
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> from cust in customers
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> join dist in distributors on cust.City equals dist.City
<span style=«font-size: 10pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»> select new { CustomerName = cust.Name, DistributorName = dist.Name };
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">В
<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>LINQ<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> нет необходимости использовать <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>join<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> так часто, как в <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>SQL<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">, поскольку внешние ключи в <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>LINQ<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> представлены в объектной модели свойствами, содержащими коллекцию элементов. Например, объект <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>Customer<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";"> содержит коллекцию объектов <span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";" lang=«EN-US»>Order<span style=«font-size: 12pt; line-height: 115%; font-family: „Times New Roman“,»serif";">. Вместо выполнения соединения, доступ к заказам можно получить с помощью точечной нотации.<span styl