Разделы презентаций


Лекция №8 LINQ запросы Москва, 2019

Содержание

Задача на автомат 1. Служба под Windows2. Должен быть лог файл.3. Служба работает с базой данных.4. Многонитевой программирование. Очередь запросов.5. Разработка через тестирование.6. Абстрактные класс и интрефейсы.

Слайды и текст этой презентации

Слайд 1Лекция №8 LINQ запросы
Москва, 2019

Лекция №8 LINQ запросы Москва, 2019

Слайд 2Задача на автомат
1. Служба под Windows
2. Должен быть лог файл.
3.

Служба работает с базой данных.
4. Многонитевой программирование. Очередь запросов.
5. Разработка

через тестирование.
6. Абстрактные класс и интрефейсы.
Задача на автомат 1. Служба под Windows2. Должен быть лог файл.3. Служба работает с базой данных.4. Многонитевой

Слайд 3LINQ - технология

LINQ - технология

Слайд 4LINQ - технология
Расширение возможностей запросов к данным в синтаксисе языка

C#
Источник данных должен поддерживать интерфейс IEnumerable.
Запросы обычно выражаются на специализированном

языке запросов.
Для различных типов источников данных, например, SQL для
реляционные базы данных и XQuery для XML.
Новый язык запросов для каждого типа данных.
LINQ упрощает эту ситуацию, предлагая согласованную модель для работы с данными в различных виды источников данных и форматов.
В запросе LINQ вы всегда работаете с объектами. Поставщик LINQ доступен
LINQ - технологияРасширение возможностей запросов к данным в синтаксисе языка C#Источник данных должен поддерживать интерфейс IEnumerable.Запросы обычно

Слайд 5LINQ - технология
В выражении Linq запроса указывается источник данных,

фильтрация, группировка, сортировка данных

Классификация LINQ
LINQ to Object
LINQ to Object обеспечивает

поддержку взаимодействия с объектами .NET в памяти, которые реализуют интерфейс IEnumerable
LINQ to Entities
Он более гибкий, чем LINQ to SQL
LINQ to SQL – исключительно к MSSQL
LINQ - технологияВ выражении Linq запроса указывается источник данных,   фильтрация, группировка, сортировка данныхКлассификация LINQLINQ to

Слайд 6LINQ - технология
Последовательность – любой объект, который реализует IEnumerable, а элемент

– элемент этой последовательности.

Элементами могут быть атомарными, коллекции, фрагменты XML

документов.
Запрос не изменяет исходную последовательность, а возвращает новую.

LINQ to Dataset обеспечивает поддержку взаимодействия с кэшем данных в памяти

LINQ to SQL, также известный как DLINQ, обеспечивает поддержку взаимодействия с базой данных MSSQL
LINQ - технологияПоследовательность – любой объект, который реализует IEnumerable, а элемент – элемент этой последовательности.Элементами могут быть

Слайд 7LINQ - технология
LINQ to XML, также известный как XLINQ, обеспечивает

поддержку взаимодействия с документами XML, т. Е. Для загрузки
XML-документы, а

также выполнять запросы, такие как чтение, фильтрация, изменение, добавление узла
Операторы LINQ на самом деле представляют собой набор методов расширения. Эти операторы образуют шаблон LINQ. Эти
операторы предлагают гибкость для запроса данных, таких как фильтрация данных, сортировка и т. д.
Следующие операторы запроса LINQ мы обсудим:
1. Оператор фильтрации Where
2. Оператор проекции Select
3. Присоединение к оператору JOIN
LINQ - технологияLINQ to XML, также известный как XLINQ, обеспечивает поддержку взаимодействия с документами XML, т. Е.

Слайд 8LINQ - технология
4. Группировка оператора
5. Оператор раздела
6. Агрегация
Присоединение к оператору
Оператор

соединения используется для объединения двух или более последовательностей или коллекций

на основе некоторого ключа и создания результата

Оператор группировки используется для организации элементов на основе заданного ключа. GroupBy Вернуть последовательность элементов в группах IGroup group…..by group…by..into

GroupBy()

LINQ - технология4. Группировка оператора5. Оператор раздела6. АгрегацияПрисоединение к операторуОператор соединения используется для объединения двух или более

Слайд 9LINQ - технология
Оператор разделения используется для разделения коллекции или последовательности

на две части и возврата оставшейся части
(запись), оставленная следствием этих

операторов разбиения
Skip Пропустить предоставленное количество записей и вернуться
остальные.
Skip (<число>)
Take Получить предоставленное количество записей и пропустите
остальные.
Take()

Агрегация означает применение агрегатных функций в LINQ. Агрегатная функция - это функция, которая вычисляет
запрос и возвращает одно значение.

LINQ - технологияОператор разделения используется для разделения коллекции или последовательности на две части и возврата оставшейся части(запись),

Слайд 10LINQ - технология
LINQ предоставляет различные способы взаимодействия с источниками данных

для их запроса. Это облегчает разработчикам SQL
взаимодействовать с различными источниками

данных для запроса с использованием C #, предоставляя им синтаксис LINQ Query.
Синтаксис метода LINQ..
Запрос LINQ.
LINQ - технологияLINQ предоставляет различные способы взаимодействия с источниками данных для их запроса. Это облегчает разработчикам SQLвзаимодействовать

Слайд 11Анонимные типы
В объектно-ориентированных языках (таких как C #) обычно определяют

небольшие классы, которые будут использоваться только один раз. Типичным примером

является класс Point, который имеет только два поля - координаты точки. Создание простого класса с идеей использовать его только один раз неудобно и отнимает много времени для программиста, особенно когда стандартные операции для каждого класса: ToString (), Equals () и GetHashCode () должны быть предопределены.
В C # есть встроенный способ создания одноразовых типов, называемых анонимными типами. Объекты такого типа создаются почти так же, как и другие объекты в C #. Дело в том, что нам не нужно заранее определять тип данных для переменной. Ключевое слово var указывает компилятору, что тип переменной будет автоматически определяться выражением после знака равенства. На самом деле у нас нет выбора, так как мы не можем указать конкретный тип переменной, потому что она определена как одна из анонимных типов. После этого мы указываем имя для объекта, затем оператор "=" и ключевое слово new. В фигурных скобках мы перечисляем имена и значения свойств анонимного типа.
Анонимные типыВ объектно-ориентированных языках (таких как C #) обычно определяют небольшие классы, которые будут использоваться только один

Слайд 12Анонимные типы
Anonymous Types – Example
Here is an example of creating

an anonymous type that describes a car:
var myCar = new

{ Color = "Red", Brand = "BMW", Speed = 180 };
Console.WriteLine("My car is a {0} {1}.",
myCar.Color, myCar.Brand);
Console.WriteLine("It runs {0} km/h.", myCar.Speed);
Массивы анонимных типов
Анонимные типы, как и обычные, могут использоваться в качестве элементов массивов. Мы можем инициализировать их ключевым словом new, за которым следуют квадратные скобки. Значения элементов массива перечислены так же, как
var arr = new[] {
new { X = 3, Y = 5 },
new { X = 1, Y = 2 },
new { X = 0, Y = 7 }
};
foreach (var item in arr)
{
Console.WriteLine(item.ToString());
}
Анонимные типыAnonymous Types – ExampleHere is an example of creating an anonymous type that describes a car:var

Слайд 13Анонимные типы
List list = new List() { 1, 2, 3,

4, 5, 6 };
List evenNumbers = list.FindAll(x => (x %

2) == 0);
foreach (var num in evenNumbers)
{
Console.Write("{0} ", num);
}
Console.WriteLine();
The result is:
2 4}
Анонимные типыList list = new List() { 1, 2, 3, 4, 5, 6 };List evenNumbers = list.FindAll(x

Слайд 14Лямбда выражения

Лямбда выражения

Слайд 15LINQ - технология
LINQ предоставляет синтаксис метода для взаимодействия с различными

источниками данных для их запроса. В основном, он использует
методы расширения

для запроса данных.

где результат должен иметь тип возвращаемых данных. Вы также можете использовать тип var, если вы не уверены в возвращаемом типе данных.

LINQ - технологияLINQ предоставляет синтаксис метода для взаимодействия с различными источниками данных для их запроса. В основном,

Слайд 16LINQ - технология
Получить фрукты, название которых начинается с «А». Поэтому

мы делаем запрос на фрукты (источник данных)
чтобы получить требуемый результат.

LINQ - технологияПолучить фрукты, название которых начинается с «А». Поэтому мы делаем запрос на фрукты (источник данных)чтобы

Слайд 17LINQ - технология
также можем дополнительно применить другой оператор
(метод расширения) по

тому же запросу, чтобы подсчитать количество фруктов

LINQ - технологиятакже можем дополнительно применить другой оператор(метод расширения) по тому же запросу, чтобы подсчитать количество фруктов

Слайд 18LINQ - технология

LINQ - технология

Слайд 19LINQ - технология

LINQ - технология

Слайд 20LINQ - технология

LINQ - технология

Слайд 21LINQ - технология
При работе с запросами LINQ у него всегда

есть три шага или действия:
1. Получить источник данных
2. Создайте запрос
3.

Выполнить запрос
LINQ - технологияПри работе с запросами LINQ у него всегда есть три шага или действия:1. Получить источник

Слайд 22Немедленное выполнение запроса
Немедленное выполнение запроса - это выполнение во время

написания запроса. Это заставляет запрос LINQ. выполнить и немедленно возвращает

результаты. Выполняя методы ToList
или ToArray для запроса, вы можете принудительно выполнить его немедленно.

Сколько ноуnбуков имеющий ч/б дисплей и сколько цветных.
SELECT color, Count(*)
FROM laptop
GROUP BY color
ч.б 10
Цв 20
Id, hd, ram, color
10 20 ч.б
20 10 ч.б
30 20 Цв

Немедленное выполнение запросаНемедленное выполнение запроса - это выполнение во время написания запроса. Это заставляет запрос LINQ. выполнить

Слайд 23LINQ - технология
Запрос SelectMany включает в себя различные свойства, которые

не определены ни в одном классе, и может получить
результат запроса

путем доступа к этим свойствам анонимного типа. Этот тип запроса называется анонимным

LINQ - технологияЗапрос SelectMany включает в себя различные свойства, которые не определены ни в одном классе, и

Слайд 24Группирование
Оператор группировки используется для организации последовательности элементов в группах как

IGroup .

ГруппированиеОператор группировки используется для организации последовательности элементов в группах как IGroup .

Слайд 25Разделение
Оператор разделения используется для разделения коллекции или последовательности на две

части и возврата оставшейся
оставленный следствием одного из этих операторов разбиения.

Он содержит операторы Take и Skip.

var sortedDogs = dogs.OrderByDescending(x => x.Age);

РазделениеОператор разделения используется для разделения коллекции или последовательности на две части и возврата оставшейсяоставленный следствием одного из

Слайд 26Агрегация
Агрегатная функция используется для вычисления запроса и возврата одного значения.

АгрегацияАгрегатная функция используется для вычисления запроса и возврата одного значения. .

Слайд 31LINQ
Для группировки результатов по некоторым критериям следует использовать группу ключевых

слов. Шаблон выглядит следующим образом:
group [variable name] by [grouping condition]

into [group name]

Результатом группировки является новая коллекция специального типа, которую можно использовать в дальнейшем в запросе. Однако после группировки запрос перестает работать с его начальной переменной. Это означает, что в операторе select мы можем использовать только группу. Пример группировки:
LINQДля группировки результатов по некоторым критериям следует использовать группу ключевых слов. Шаблон выглядит следующим образом:group [variable name]

Слайд 33LINQ
В запросе для каждого числа вычисляется делитель числа%, а для

каждого другого результата создается новый.
Далее в запросе оператор select работает

со списком созданных групп, и для каждой группы создает анонимный тип с двумя свойствами: Remainder и Numbers. Свойству Remainder присваивается ключ группы (в нашем случае остаток от деления на делитель числа). А свойству Numbers присваивается группа сбора, которая содержит все элементы в группе. Обратите внимание, что выбор выполняется только по списку групп. Номер переменной не может быть использован там. Далее в примере двух вложенных операторов foreach печатаются остатки (группы) и числа, у которых есть остаток (расположенный в группе).

List list = new List();
list.AddRange(Enumerable.Range(1, 100000));
var elements = list.Where(e => e > 20000);
var element = list.Where(e => e > 20000).First();

LINQВ запросе для каждого числа вычисляется делитель числа%, а для каждого другого результата создается новый.Далее в запросе

Слайд 34LINQ, HashSet
HashSet set = new HashSet();
for (int i =

0; i < 50000; i++)
{
set.Add(Guid.NewGuid()); // Add random

GUID
}

Guid keyForSearching = new Guid();
for (int i = 0; i < 50000; i++)
{
// Use HashSet.Contains(…)
bool found = set.Contains(keyForSearching);
}
bool found = set.Where(g => g==keyForSearching).Count() > 0;


LINQ, HashSetHashSet set = new HashSet(); 	for (int i = 0; i < 50000; i++) { 	set.Add(Guid.NewGuid());

Слайд 35LINQ, упражнения
Напишите класс student со следующими свойствами: имя, фамилия и

возраст. Напишите метод, который для данного массива student находит тех,

чье имя совпадает заданному в массиве. Используйте LINQ


LINQ, упражненияНапишите класс student со следующими свойствами: имя, фамилия и возраст. Напишите метод, который для данного массива

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика