Реферат: 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

еще рефераты
Еще работы по программному обеспечению