Презентация Марья Сергеевна лк 1 б Net





























- Размер: 4.9 Mегабайта
- Количество слайдов: 28
Описание презентации Презентация Марья Сергеевна лк 1 б Net по слайдам
1 Обзор технологий доступа к данным: LINQ и и ADO. NET Entity Framework
2 Содержание LINQ ADO. NET Entity Framework ADO. NET Data Services Codename ‘Astoria’ Sync Framework Общая картина подхода Microsoft к к технологиям доступа к данным
3 История OLE DB(1. 0 – 1992) – низкоуровневый API OLE DB — COM API ADO – объектная модель — Recordset ADO. NET – объектная модель . NET — Dataset MCAD (Windows DAC) -1996 Microsoft Jet Database Engine DB-Library Data Access Objects (DAO) Remote Data Objects (RDO)
4 Доступ к данным Sql. Connection nwind. Conn = new Sql. Connection(«Data Source=localhost; Integrated Security=SSPI; Initial Catalog=northwind»); Sql. Command cat. CMD = nwind. Conn. Create. Command(); cat. CMD. Command. Text = «SELECT Category. ID, Category. Name FROM Categories WHERE Category. Name LIKE ‘B%’ ORDER BY 1“; nwind. Conn. Open(); Sql. Data. Reader my. Reader = cat. CMD. Execute. Reader(); while (my. Reader. Read()) { Console. Write. Line(«\t{0}\t{1}», my. Reader. Get. Int 32(0), my. Reader. Get. String(1)); } my. Reader. Close(); nwind. Conn. Close(); Data. Set DS=new Data. Set(); XQuery. Navigator. Collection o. XQ = new XQuery. Navigator. Collection(); string str. XML = «»; string file. Name 1=»c: \\Test\\T 1. xml»; string alias 1 = «My. Data. Test. xml»; o. XQ. Add. Navigator( file. Name 1, alias 1 ); string str. Query = » { » + » let $bb : = document(\»My. Data. Test. xml\»)/*/* » + » let $cc : = document(\»My. Datattt. xml\»)/*/* » + » for $c in $cc » + » for $b in $bb » + » where $c/kod = $b/kod » + » return
5 Типовые уровни при работе с данными Концептуальный Бизнес сущности и логика Объекты и объектные коллекции Логический Реляционное представление Таблицы, отношения junction tables Физический физическое хранение и манипулирование страницы, экстенты, индексы ограничения ( constraints) …C on cetual P h ysical Log ical
6 Сложности в работе с данными Нетипизированные острова разные для каждого источника специфические знания для каждого источника отсутствие проверок на этапе компиляции сложность в поддержке … … и даже нет Intelli. Sence Проблема : Data != Objects Dataset – реляционное представление в объектном виде Скрытые знания о структуре хранения и объектно–реляционном маппинге (ORM) в виде строк Data Access Layer — спасение ?
7 Решение – основные идеи Типизированные запросы Типизированные результаты Объектное представление схемы хранения Общее решение для целого ряда продуктов Использование преимуществ ADO. NET Создание концептуальной объектной модели Явное декларативное представление схемы объектно–реляционного маппинга ( ORM ) между концептуальной моделью и моделью хранения LINQ Entity Framework
8 Language Integrated Query Единообразные типизированные запросы к любому источнику данных Методы расширения интерфейса IEnumerable (Select, Order. By, Group. By, Join. Where) Возвращаемый результат как объектная коллекция (IEnumerable ) Intellisence – проверка на этапе компиляции Специальный синтаксис выражений запросов
9 C# 3. 0 var contacts = from c in customers where c. State == «WA» select new { c. Name, c. Phone }; var contacts = customers . Where(c => c. State == «WA») . Select(c => new { c. Name, c. Phone }); Extension methods Lambda expressions Query expressions Object initializers. Anonymous types. Local variable type inference
10 VBA 9 Dim contacts = From c In customers _ Where c. State = «WA“ _ Select c. Name, c. Phone Dim contacts = _ customers _ . Where(Function (c) c. State = «WA»)_ . Select(Function(c) New With { c. Name, c. Phone }) Extension methods Lambda expressions Query expressions Object initializers. Anonymous types. Local variable type inference
11 Проект LINQ C# 3. 0 VB 9. 0 Другие. NET Language Integrated Query Реляционн ые ые источники
12 LINQ Поддерживает модель провайдеров, существуют реализации: LINQ to NHibernate LINQ to Amazon Share. Point, …. Развивается в направлении параллелизма ( manycore ) – PLINQ
13 Entity Framework Инфраструктура формирования концептуального представления данных с помощью сущностей (Entities) Реализация классических задач ORM Абстрагирование от схемы хранения Гибкий маппинг
14 Архитектура Entity Framework
15 Гибкий маппинг Mapping. Таблица на иерархию
16 Гибкий маппинг. Таблица на тип
17 Гибкий маппинг. Таблица на класс
18 Гибкий маппинг. Разделение сущности
19 Гибкий маппинг. Хранимые процедуры
20 Гибкий маппинг. Хранимые процедуры
21 Гибкий маппинг. Создание представлений ( Query. View)
22 Гибкий маппинг. Создание представлений (Defining Query)
23 Entity Framework — текущее состояние Доступен в Beta 3 RTM вышел во второй половине 2008 Провайдеры третьих производителей для различных баз данных В течение 3 месяцев после выхода ( RTM ) Oracle, IBM DB 2 , My. SQL, Postgre. SQL , Informix, Ingres, Sybase , SQLite , SQL Anywhere , Progress … Firebird
24 Роль Entity Framework Единый движок концептуального представления и ORM для ряда ключевых продуктов Microsoft
25 Сравнение LINQ и Entity Framework Единообразные запросы Единообразные типизированные запросы к любому источнику Типизированные результаты LINQ to SQL — типизированное представление логической схемы данных 1: 1 ( ORM ) LINQ to SQL – возможности переименования объектов данных и поддержка TPH Гибкий маппинг Создание концептуального объектного уровня, абстрагированного от логики хранения Типизированное представление концептуальной схемы с гибким маппингом — полноценный ORM LINQ Entity Framework Основное назначение Возможности маппинга
26 C# 3. 0 VB 9. 0 Другие. NET Language Integrated Query Microsoft SQL Server, Oracle, DB 2, My. SQL… Реляционные источники. LINQ + Entity Framework
28 Ссылки LINQ http: //msdn 2. microsoft. com/en-us/netframework/aa 904594. aspx ADO. NET Entity Framework http: //msdn. microsoft. com/data http: //blogs. msdn. com/adonet/ http: //blogs. msdn. com/data/