Источники данных LINQ РУБД. LINQ (Language Integrated Query, язык интегрированных запросов ) это технология, которая позволяет разработчикам формировать.

Презентация:



Advertisements
Похожие презентации
БАЗЫ ДАННЫХ ЛЕКЦИЯ 14. тема: XML-ТЕХНОЛОГИИ В БАЗАХ ДАННЫХ.
Advertisements

ADO.NET Интегрированная среда разработки. ADO.NET Общая картина Все типы ADO.NET предназначены для выполнения одного набора задач: установить соединение.
Михаил Черномордиков Developer Evangelist, Microsoft Россия
Основы SQL Запросы к базе данных. Что такое база данных SQL? SQL (Structured Query Language - «Структурированный язык запросов») - универсальный компьютерный.
Классификация БД. СУБД и ее компоненты. Логическое и физическое описание данных.
ИТЕРАТОРЫ И LINQ Лекция 1. Интерфейс IEnumerable и IEnumerator Любая коллекция реализует интерфейс IEnumerable. public interface IEnumerable : IEnumerable.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Технология хранения, поиска и сортировки информации в базах данных
Базы данных. Введение Базы данных обеспечивают хранение информации. Доступ к базе данных осуществляется через специальную программу - систему управления.
Департамент образования и науки Тюменской области Государственное автономное профессиональное образовательное учреждение Тюменской области «Западно-Сибирский.
Апробация технологий Silverlight/LINQ/WCF для создания web-приложений, ориентированных на интенсивную обработку данных Дипломная работа студента 545 группы.
Основные понятия БД Сама по себе БД не может обслужить запросы пользователя на поиск и обработку информации, т.е. БД – это «информационный склад». Обслуживание.
Информационные системы. Базы данных. Информационная система – любая система обработки информации (шир)
Лекция 15 Лекция 15 Управление реляционными базами данных. Языки определения данных и языки манипулирования данными. Способы выражения запросов: процедурный.
Объекты программы Microsoft Access Страницы доступа к данным Макросы Отчеты Таблицы Запросы Форма Модули.
Базы данных в электронных таблицах. Что называется базой данных? Какие примеры баз данных вы знаете? Какие существуют формы представления баз данных?
Технология модели «клиент-сервер». Роли Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса Компьютер, желающий воспользоваться.
РЕЛЯЦИОННАЯ АЛГЕБРА. Элементы РМД и формы их представления Сущность – это объект любой природы. Данные о сущности хранятся в отношении (таблице). Атрибуты.
Билет Табличные базы данных (БД): основные понятия (поле, запись, первичный ключ записи); типы данных. Системы управления базами данных и принципы.
КАФЕДРА СИСТЕМ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ (САПР) УПРАВЛЕНИЕ БАЗАМИ ДАННЫХ.
Транксрипт:

Источники данных LINQ РУБД

LINQ (Language Integrated Query, язык интегрированных запросов ) это технология, которая позволяет разработчикам формировать в программном коде запросы, основанные на наборах, без использования дополнительного языка запросов.

Запросы LINQ можно писать к различным перечислимым источникам данных, таких как : хранимые в памяти структуры данных, XML- документы, базы данных SQL; объекты DataSet.

Достоинства LINQ LINQ позволяет с помощью собственных средств формировать запросы для любого совместимого с LINQ источника, что делает код универсальным. При всем этом синтаксис кода остаётся неизменным независимо от того какой источник данных мы используем. Т. о., синтаксис запроса, к примеру к обычному массиву, ничем не отличается от синтаксиса запроса к базе данных. По сути LINQ представляет собой язык в другом языке программирования.

Запрос указывает, какую информацию нужно извлечь из источника или источника данных. При необходимости запрос указывает способ сортировки, группировки и формирования этих сведений перед возвращением. Запрос храниться в переменной запроса и инициализируется выражением запроса.

Основные операции, выполняемые в запросе LINQ Получение источника данных Фильтрация Упорядочивание Группировка Соединение Выбор ( проецирование )

Источники данных LINQ Linq ориентирован на запросы, возвращаемые набор объектов, единственный объект или подмножество полей из объекта или множества объектов.

Последовательность (sequence) Возвращённый набор объектов называется последовательностью. Большинство последовательностей имеет тип IEnumerable, где T – тип данных объектов, находящихся в последовательности. Пример – последовательность целых чисел хранятся в переменной типа IEnumerable

Всего существует пять источников данных LINQ: LINQ to Object LINQ to XML LINQ to DataSet LINQ to SQL LINQ to Entities

LINQ to Qbject позволяет выполнять запросы к массивам и находящимся в памяти коллекциям данных. Имеет SQL- подобный синтаксис, доступный в LINQ- запросах. Стандартные операции запросов – это статические методы класса System.Linq.Enumerable

LINQ to Qbject Все операции запроса LINQ состоят из трёх различных действий : получение источника данных, создание запроса, выполнение запроса.

LINQ to XML предназначен для работы с XML- документами. Используя LINQ to XML можно сократить объёмы кода. Это программный интерфейс XML, который позволяет работать с XML- файлами внутри языков программирования

LINQ to DataSet широкие оптимизированные возможности создания запросов и модификацию приложений через объект DataSet

LINQ to SQL позволяет через запросы LINQ работать с базой данных MS SQL Server. Данная технология позволяет непосредственно запрашивать схемы баз данных MS SQL Server.

LINQ to Entities позволяет приложениям взаимодействовать с реляционными данными из баз данных как с объектами

Передача данных в объекты памяти часто бывает сложной и способствует появлению ошибок. Поставщик Linq, реализованный в Linq to DataSet и Linq to SQL преобразует исходные данные в данные, основанные на коллекции объектов, реализующих интерфейс Ienumerable.

Linq to Object - пример Пример запрос к коллекции Dictionary : Описание переменной models: private Dictionary models; Заполнение данными: private void InitializeData() {models = new Dictionary (); models.Add(1, "Алгоритмы"); … }

Запрос к массиву данных listBox1.Items.Clear(); var items = from s in names where s.StartsWith(tbFilter.Text) select s; foreach (var item in items) { listBox1.Items.Add(item); }

Запрос к данным в операторе foreach: var items = from s in names where s.StartsWith(tbFilter.Text) select s;

Способ получения результата выполнения запроса без цикла var items = from s in models where s.Value.Contains(tbFilter.Text) select s; listBox1. DataSource = items.ToList();

LINQ to XML - пример Описание переменных : private const string Root = "DocumentElement"; private const string FileName = "D:\\tmp.xml"; - название файла для сохранения XML-дерева private XElement xmlDoc; - экземпляр XML-дерева private XNamespace ns = " - пространство имён XML-дерева

Формирование XML- документа xmlDoc = new XElement(ns + Root, new XElement(ns + "Продукт", new XElement(ns + "Номер", 1), new XElement(ns + "Название", "Хлеб ржаной"), new XElement(ns + "Изготовитель", "ООО Хохлов"), new XElement(ns + "Дата_изготовления", new DateTime(2013, 06, 20)), new XElement(ns + "Годен_до", new DateTime(2013, 06, 24))), new XElement(ns + "Продукт", new XElement(ns + "Номер", 2), new XElement(ns + "Название", "Хлеб пшеничный"), new XElement(ns + "Изготовитель", "ООО Хохлов"), new XElement(ns + "Дата_изготовления", new DateTime(2013, 06, 24)), new XElement(ns + "Годен_до", null) … ));

Linq to DataSet запрос к данным, который вернёт список студентов, получивших оценку 5

private void bFilter_Click(object sender, EventArgs e) { xmlDoc = new XElement(ns + Root, from item in xmlDoc.Elements() where (item.Element(ns + "Годен_до").IsEmpty) select item); xmlDoc.Save(FileName); webBrowser1.Navigate(FileName); }

Linq to SQL Добавляем класс DataPTK.dbml Linq to SQL Classes

Диаграмма классов

Кроме классов, представляющих собой объекты из базы данных, сгенерирован класс DataPTKDataContext: который представляет собой класс Linq to SQL, который действует как посредник между базой данных SQL Server и классами сущностей Linq to SQL, сопоставленных этой базе данных. Класс DataContext содержит данные строки соединения и методы для подключения к базе данных и работы с данными в базе данных

Классы, представляющие объекты базы данных, также позволяют расширение класс Student.cs

Linq to Entities Платформа ADO.NET позволяет создавать приложения для доступа к данным, работающие с концептуальной моделью приложения. Entity Framework представляет логическую структуру базы данных, состоящую из слоёв : Концептуальный слой Слой сопоставления Логический слой

Работа с данными в Entity При создании приложений на платформе Entity Framework в программном коде предоставляется возможность работать с данными, представленными в форме объектов и свойств, без необходимого прямого обращения к таблицам и столбцам реляционной базы данных.

Платформа Entity Framework компилирует набор концептуальных схем и схем хранения вместе с заданными для них сопоставлениями. Клиентские представления – пары инструкций Entity SQL управляют обработкой запросов и обновлений в среды выполнения.

Платформа Entity Framework строится из поставщиков данных ADO.NET, специфичных для типа хранилища данных, например SQL Server. Базовому поставщику данных и реляционной базе данных передаётся объект EntityConnection.

Во время выполнения запрос проходит синтаксический анализ и преобразуется в каноническое дерево команд, которое является представлением запроса в модели объектов. Канонические деревья команд представляют операции выбора, обновления, вставки и удаления. Вся дальнейшая обработка выполняется над деревом команд, которое является средством взаимодействия между поставщиком System.Data.EntityClient и базовым поставщиком данных.Net Framework, например System.Data.SqlClient

Entity Data Model Спецификация – сущностная модель данных EDM. Схема макета применяется для создания программируемых классов, используемых кодом приложения. Схема хранилища – содержит материализующие данные для приложений.