SlideShare a Scribd company logo
ADO.NET
Модуль 6 EF
Що таке Entity (Сутність)
Andrey Gladky
KspDevelop@gmail.com 2
Сущности — это концептуальная модель физической базы
данных, которая отображается на предметную область.
Формально говоря, эта модель называется моделью сущностных
данных (Entity Data Model — EDM). Модель EDM представляет
собой набор классовклиентской стороны, которые отображаются
на физическую базу данных. Тем не менее,необходимо понимать,
что сущности вовсе не обязаны напрямую отображаться на
схе¬му базы данных, как может показаться, исходя из названия.
Сущностные классы мож¬но реструктурировать для соответствия
существующим потребностям, и исполняющаясреда EF отобразит
эти уникальные имена на корректную схему базы данных.
Будівельні блоки Entity Framework
Andrey Gladky
KspDevelop@gmail.com 3
Две ключевых части API-интерфейса EF — это службы объектов
и клиент сущности.
Под службами объектов подразумевается часть EF, которая
управляет сущностямиклиентской стороны при работе с ними в
коде. Службы объектов отслеживают измене¬ния, внесенные в
сущность (например, смена цвета автомобиля с зеленого на
синий),управляют отношениями между сущностями (скажем,
просмотр всех заказов для кли¬ента с заданным именем), а также
обеспечивают возможности сохранения измененийв базе данных
и сохранение состояния сущности с помощью сериализации
(XML идвоичной). С точки зрения программирования
уровеньслужб объектов управляет любым классом,
расширяющим базовый класс EntityObject.
Будівельні блоки Entity Framework
Andrey Gladky
KspDevelop@gmail.com 4
Еще одним важным аспектом API-интерфейса EF является
уровень клиента сущности. Эта часть API-интерфейса EF
отвечает за работу с поставщикомданных ADO.NET для
установки соединений с базойданных, генерации необходимых
SQL-операторовна основе состояния сущностей и запросов
LINQ,отображения извлеченных данных на корректныеформы
сущностей, а также управления прочими деталями, которые
обычно приходитсяделать вручную, если не используется Entity
Framework.
Функциональность уровня клиента сущности определена в
пространстве именSystem. Data. EntityClient. Указанное
пространство имен включает набор классов, ко¬торые
отображают концепции EF (такие как запросы LINQ to Entity) на
лежащего в осно¬ве поставщика данныхАОО^ЕТ. Эти классы (т.е.
EntityCommand и EntityConnection)очень похожи на классы,
которые можно найти в составе поставщика данных ADO.NET;
EDM – Entity Data Model
Andrey Gladky
KspDevelop@gmail.com 5
В контексте API-интерфейса Entity Framework для
корректного отображения данных сущностных классов на данные
таблиц требуется правильное определение логики отображения. В
любой системе, управляемой моделью данных, уровни
сущностей, реальной базы данных и отображения разделены на
три связанных части: концептуальная модель, логическая модель
и физическая модель.
 Концептуальная модель определяет сущности и отношения
между ними (при их наличии).
 Логическая модель отображает сущности и отношения на
таблицы с любыми необходимыми ограничениями внешних
ключей.
 Физическая модель представляет возможности конкретного
механизма данных, указывая детали хранилища, такие как
табличная схема, разбиение на разделы и индексация.
В мире EF каждый из этих трех уровней фиксируется в файле
XML-формата с расширением *. edmx.
EDM – Entity Data Model
Andrey Gladky
KspDevelop@gmail.com 6
Этот файл содержит XML-описания для сущностей,
физической базы данных и инструкций по отображению этой
информации между концептуальной и физической моделью.
При компиляции основанных на EF проектов в Visual Srudio
файл *.edmx применяется для генерации трех отдельных XML-
файлов:
 Для концептуальной модели данных (*.csdl),
 Для физической модели (*.ssdl)
 Для уровня отображения (*.msl).
Данные из этих трех XML-файлов затем объединяются с
приложением в виде двоичных ресурсов. После компиляции
сборка .NET имеет все необходимые данные для вызовов API-
интерфейса EF, имеющихся в коде.
Основні класи (ObjectContext)
Andrey Gladky
KspDevelop@gmail.com 7
Последним фрагментом мозаики EF является класс
ObjectContext, определенный в пространстве имен System.
Data.Objects. Генерация файла *.edmx дает в результате
сущностные классы, которые отображаются на таблицы базы
данных, и класс, расширяющий ObjectContext. Обычно этот класс
используется для непрямого взаимодействия со службами
объектов и функциональностью клиента сущности.
Класс ObjectContext предлагает набор основных служб для
дочерних классов, вклю¬чая возможность сохранения всех
изменений (которые в конечном итоге сводятся к об¬новлению
базы данных), настройку строки соединения, удаление объектов,
вызов храни¬мых процедур, а также обработку других
фундаментальных деталей.
Загальні компоненти класу ObjectContext
Andrey Gladky
KspDevelop@gmail.com 8
Компонент Опис
AcceptAllChanges() Принимает все изменения, проведенные в сущностных
объек¬тах внутри контекста объектов
AddObject() Добавляет объект к контексту объектов
DeleteObject() Помечает объект для удаления
ExecuteFunction<T>() Выполняет хранимую процедуру в базе данных
ExecuteS-toreCommand() Позволяет отправлять команду SQL прямо в хранилище
данных
GetObj ectByKey() Находит объект внутри контекста объектов по его ключу
SaveChanges() Отправляет все обновления в хранилище данных
CommandTimeout Это свойство получает или устанавливает значение
таймаута в секундах для всех операций контекста
объектов
Connection Это свойство возвращает строку соединения,
используемую текущим контекстом объектов
SavingChanges Это событие инициируется, когда контекст объектов
сохраняетизменения в хранилище данных
Andrey Gladky
KspDevelop@gmail.com 9
Andrey Gladky
KspDevelop@gmail.com 10
Andrey Gladky
KspDevelop@gmail.com 11
Основні класи (ObjectSet<T>)
Andrey Gladky
KspDevelop@gmail.com 12
Компонент Опис
AddObject() Позволяет вставить новый сущностный объект в
коллекцию
CreateObj ect<T> Создает новый экземпляр указанного сущностного типа
DeleteObject() Помечает объект для удаления
Производный от ObjectContext класс служит контейнером, управляющим
сущностными объектами, которые сохраняются в коллекции типа
ObjectSet<T>.
Andrey Gladky
KspDevelop@gmail.com 13
Кодова база C#
Entity SQL Служби об’єктів
Entity
SQL
Запит
LINQ IEnumerable<T>
Постачальник даних клієнта сутності
Дерево команд EntityDataReader
Постачальник даних ADO.NET
Дерево команд DbDataReader
Фізична база даних
Генерація файла *.edmx
Andrey Gladky
KspDevelop@gmail.com 14
Генерації необхідної концептуальної, логічної та фізичної моделі
даних, визначеної у файлі *.edmx. Один із способів передбачає
застосування для цього утиліти командного рядка EdmGen.exe.
Опція Опис
/mode:FullGeneration Згенерувати файли *.ssdl, * .msl, *. csdl і клієнтські
сутності з вказаної бази даних
/project: Базове ім'я, яке повинно використовуватися для
згенерованого коду і файлів. Зазвичай це ім'я бази
даних, з якої витягується інформація (допускається
скорочена форма - / p :)
/connectionstring: Рядок з'єднання, що використовується для взаємодії з
базою даних (допускається скорочена форма - / с :)
/language: Дозволяє вказати, який синтаксис повинен
використовуватися для згенерованого коду - C # або
VB
/pluralize Дозволяє автоматично вибирати форму множинного
або одиничного імені набору сутностей, імені типу
сутності і імені навігаційної властивості, згідно з
правилами англійської мови
Генерація файла *.edmx
Andrey Gladky
KspDevelop@gmail.com 15
Дана утиліта дозволяє генерацію необхідних файлів на
основі існуючої бази даних; крім того, доступні опції для
генерації абсолютно нової бази даних на основі наявних
сутнісних файлів.
CSDL - Conceptual schema definition language (CSDL)
SSDL - store schema definition language (SSDL)
MSL - mapping specification language (MSL)
На основі мови XML, які відповідно описують концептуальну модель,
модель зберігання даних, а також відповідність між цими моделями.
Генерація файла *.edmx
Andrey Gladky
KspDevelop@gmail.com 16
Другий спосіб генерації *.edmx-файда – використання
візуального конструктора EDM з середовища Visual
Studio.
Виберіть пункт меню Project => Add New ltem і вставте новий
елемент ADO.NET Entity Data Model
Andrey Gladky
KspDevelop@gmail.com 17
Andrey Gladky
KspDevelop@gmail.com 18
Andrey Gladky
KspDevelop@gmail.com 19
Andrey Gladky
KspDevelop@gmail.com 20
Andrey Gladky
KspDevelop@gmail.com 21
Andrey Gladky
KspDevelop@gmail.com 22
Andrey Gladky
KspDevelop@gmail.com 23
Моделі роботи ADO.NET

More Related Content

PPT
Component diagram
PPT
Базы данных лекция №12
PPT
Диаграммы композитной структуры, коммуникации и пакетов
PPTX
PPT
лекция 7
DOC
005
PPT
0041
PPT
Диаграмма компонентов
Component diagram
Базы данных лекция №12
Диаграммы композитной структуры, коммуникации и пакетов
лекция 7
005
0041
Диаграмма компонентов

What's hot (8)

PDF
лек13 5
PDF
Java Persistence API (JPA) Basics
PPT
Use-case diagram
ODP
PGDBObject
PPT
Диаграмма развертывания
DOCX
бд шпора2
PPTX
Работа с БД в Java
лек13 5
Java Persistence API (JPA) Basics
Use-case diagram
PGDBObject
Диаграмма развертывания
бд шпора2
Работа с БД в Java
Ad

Viewers also liked (11)

DOCX
Doris flores
PDF
Certificates 2
PDF
Cover Letter - IARV
PPT
Douglas Bruce
PPSX
Procesos Industriales Prof. elizabeth pacheco
PPTX
Uml module 5
PDF
Module 2 task 1 laura vilar
PPTX
System programing module 3
PDF
แผ่นพับประชารัฐรักสามัคคี
PPTX
Democracia y derechos humanos
PPTX
Doris flores
Certificates 2
Cover Letter - IARV
Douglas Bruce
Procesos Industriales Prof. elizabeth pacheco
Uml module 5
Module 2 task 1 laura vilar
System programing module 3
แผ่นพับประชารัฐรักสามัคคี
Democracia y derechos humanos
Ad

Similar to Ado.net module 6 entity framework (16)

PDF
C# Web. Занятие 04.
PPTX
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
PDF
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
ODP
Entity framework
PPTX
Entity Framework & Code First
PPTX
Андрей Терехов «Внутреннее устройство EF Core»
DOC
Доклад "Реализация требований современных информационно-насыщенных бизнес-арх...
PPTX
Micro orm для жизни. Кожевников Дмитрий D2D Just.NET
PPT
Необъектные модели предметной области
PPTX
New in Entity Framework 4.0
PPTX
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
PPT
Domain Driven Design: модель вместо требования
PPT
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
PDF
За что не любить EF и чем его заменить
PDF
моделисущностей
PPTX
Coding like a sex
C# Web. Занятие 04.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Entity framework
Entity Framework & Code First
Андрей Терехов «Внутреннее устройство EF Core»
Доклад "Реализация требований современных информационно-насыщенных бизнес-арх...
Micro orm для жизни. Кожевников Дмитрий D2D Just.NET
Необъектные модели предметной области
New in Entity Framework 4.0
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Domain Driven Design: модель вместо требования
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
За что не любить EF и чем его заменить
моделисущностей
Coding like a sex

More from Andrii Hladkyi (20)

PPTX
Net framework and C# module 17. Serialization
PPTX
Net Framework and C# Module 3 4. Inheritance, Abstractions
PPTX
NET Framework and C# Module 12.2. Garbage Collector
PPTX
System programing module 2. Threads
PPTX
System programing module 1. Processes
PPTX
NET Framework and C# Module 6.2. Generics
PPTX
NET Framework and C# Module 6. Delegates, Events
PPTX
NET Framework and C# Module 5. Interfaces
PPTX
Net Framework and c# module 2. OOP
PPTX
Net Framework and c# Lesson 1
PPTX
Wpf module 2
PPTX
Wpf module 1
PPTX
Msp module 3
PPTX
Msp module 2
PPTX
Msp module 1
PPTX
Ado.net module 2
PPTX
Ado.net module 1
PPTX
Design pattern module 1
PPTX
Win api module_2.0_gdi+
PPTX
Win api module_1.1_ok
Net framework and C# module 17. Serialization
Net Framework and C# Module 3 4. Inheritance, Abstractions
NET Framework and C# Module 12.2. Garbage Collector
System programing module 2. Threads
System programing module 1. Processes
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 5. Interfaces
Net Framework and c# module 2. OOP
Net Framework and c# Lesson 1
Wpf module 2
Wpf module 1
Msp module 3
Msp module 2
Msp module 1
Ado.net module 2
Ado.net module 1
Design pattern module 1
Win api module_2.0_gdi+
Win api module_1.1_ok

Ado.net module 6 entity framework

  • 2. Що таке Entity (Сутність) Andrey Gladky KspDevelop@gmail.com 2 Сущности — это концептуальная модель физической базы данных, которая отображается на предметную область. Формально говоря, эта модель называется моделью сущностных данных (Entity Data Model — EDM). Модель EDM представляет собой набор классовклиентской стороны, которые отображаются на физическую базу данных. Тем не менее,необходимо понимать, что сущности вовсе не обязаны напрямую отображаться на схе¬му базы данных, как может показаться, исходя из названия. Сущностные классы мож¬но реструктурировать для соответствия существующим потребностям, и исполняющаясреда EF отобразит эти уникальные имена на корректную схему базы данных.
  • 3. Будівельні блоки Entity Framework Andrey Gladky KspDevelop@gmail.com 3 Две ключевых части API-интерфейса EF — это службы объектов и клиент сущности. Под службами объектов подразумевается часть EF, которая управляет сущностямиклиентской стороны при работе с ними в коде. Службы объектов отслеживают измене¬ния, внесенные в сущность (например, смена цвета автомобиля с зеленого на синий),управляют отношениями между сущностями (скажем, просмотр всех заказов для кли¬ента с заданным именем), а также обеспечивают возможности сохранения измененийв базе данных и сохранение состояния сущности с помощью сериализации (XML идвоичной). С точки зрения программирования уровеньслужб объектов управляет любым классом, расширяющим базовый класс EntityObject.
  • 4. Будівельні блоки Entity Framework Andrey Gladky KspDevelop@gmail.com 4 Еще одним важным аспектом API-интерфейса EF является уровень клиента сущности. Эта часть API-интерфейса EF отвечает за работу с поставщикомданных ADO.NET для установки соединений с базойданных, генерации необходимых SQL-операторовна основе состояния сущностей и запросов LINQ,отображения извлеченных данных на корректныеформы сущностей, а также управления прочими деталями, которые обычно приходитсяделать вручную, если не используется Entity Framework. Функциональность уровня клиента сущности определена в пространстве именSystem. Data. EntityClient. Указанное пространство имен включает набор классов, ко¬торые отображают концепции EF (такие как запросы LINQ to Entity) на лежащего в осно¬ве поставщика данныхАОО^ЕТ. Эти классы (т.е. EntityCommand и EntityConnection)очень похожи на классы, которые можно найти в составе поставщика данных ADO.NET;
  • 5. EDM – Entity Data Model Andrey Gladky KspDevelop@gmail.com 5 В контексте API-интерфейса Entity Framework для корректного отображения данных сущностных классов на данные таблиц требуется правильное определение логики отображения. В любой системе, управляемой моделью данных, уровни сущностей, реальной базы данных и отображения разделены на три связанных части: концептуальная модель, логическая модель и физическая модель.  Концептуальная модель определяет сущности и отношения между ними (при их наличии).  Логическая модель отображает сущности и отношения на таблицы с любыми необходимыми ограничениями внешних ключей.  Физическая модель представляет возможности конкретного механизма данных, указывая детали хранилища, такие как табличная схема, разбиение на разделы и индексация. В мире EF каждый из этих трех уровней фиксируется в файле XML-формата с расширением *. edmx.
  • 6. EDM – Entity Data Model Andrey Gladky KspDevelop@gmail.com 6 Этот файл содержит XML-описания для сущностей, физической базы данных и инструкций по отображению этой информации между концептуальной и физической моделью. При компиляции основанных на EF проектов в Visual Srudio файл *.edmx применяется для генерации трех отдельных XML- файлов:  Для концептуальной модели данных (*.csdl),  Для физической модели (*.ssdl)  Для уровня отображения (*.msl). Данные из этих трех XML-файлов затем объединяются с приложением в виде двоичных ресурсов. После компиляции сборка .NET имеет все необходимые данные для вызовов API- интерфейса EF, имеющихся в коде.
  • 7. Основні класи (ObjectContext) Andrey Gladky KspDevelop@gmail.com 7 Последним фрагментом мозаики EF является класс ObjectContext, определенный в пространстве имен System. Data.Objects. Генерация файла *.edmx дает в результате сущностные классы, которые отображаются на таблицы базы данных, и класс, расширяющий ObjectContext. Обычно этот класс используется для непрямого взаимодействия со службами объектов и функциональностью клиента сущности. Класс ObjectContext предлагает набор основных служб для дочерних классов, вклю¬чая возможность сохранения всех изменений (которые в конечном итоге сводятся к об¬новлению базы данных), настройку строки соединения, удаление объектов, вызов храни¬мых процедур, а также обработку других фундаментальных деталей.
  • 8. Загальні компоненти класу ObjectContext Andrey Gladky KspDevelop@gmail.com 8 Компонент Опис AcceptAllChanges() Принимает все изменения, проведенные в сущностных объек¬тах внутри контекста объектов AddObject() Добавляет объект к контексту объектов DeleteObject() Помечает объект для удаления ExecuteFunction<T>() Выполняет хранимую процедуру в базе данных ExecuteS-toreCommand() Позволяет отправлять команду SQL прямо в хранилище данных GetObj ectByKey() Находит объект внутри контекста объектов по его ключу SaveChanges() Отправляет все обновления в хранилище данных CommandTimeout Это свойство получает или устанавливает значение таймаута в секундах для всех операций контекста объектов Connection Это свойство возвращает строку соединения, используемую текущим контекстом объектов SavingChanges Это событие инициируется, когда контекст объектов сохраняетизменения в хранилище данных
  • 12. Основні класи (ObjectSet<T>) Andrey Gladky KspDevelop@gmail.com 12 Компонент Опис AddObject() Позволяет вставить новый сущностный объект в коллекцию CreateObj ect<T> Создает новый экземпляр указанного сущностного типа DeleteObject() Помечает объект для удаления Производный от ObjectContext класс служит контейнером, управляющим сущностными объектами, которые сохраняются в коллекции типа ObjectSet<T>.
  • 13. Andrey Gladky KspDevelop@gmail.com 13 Кодова база C# Entity SQL Служби об’єктів Entity SQL Запит LINQ IEnumerable<T> Постачальник даних клієнта сутності Дерево команд EntityDataReader Постачальник даних ADO.NET Дерево команд DbDataReader Фізична база даних
  • 14. Генерація файла *.edmx Andrey Gladky KspDevelop@gmail.com 14 Генерації необхідної концептуальної, логічної та фізичної моделі даних, визначеної у файлі *.edmx. Один із способів передбачає застосування для цього утиліти командного рядка EdmGen.exe. Опція Опис /mode:FullGeneration Згенерувати файли *.ssdl, * .msl, *. csdl і клієнтські сутності з вказаної бази даних /project: Базове ім'я, яке повинно використовуватися для згенерованого коду і файлів. Зазвичай це ім'я бази даних, з якої витягується інформація (допускається скорочена форма - / p :) /connectionstring: Рядок з'єднання, що використовується для взаємодії з базою даних (допускається скорочена форма - / с :) /language: Дозволяє вказати, який синтаксис повинен використовуватися для згенерованого коду - C # або VB /pluralize Дозволяє автоматично вибирати форму множинного або одиничного імені набору сутностей, імені типу сутності і імені навігаційної властивості, згідно з правилами англійської мови
  • 15. Генерація файла *.edmx Andrey Gladky KspDevelop@gmail.com 15 Дана утиліта дозволяє генерацію необхідних файлів на основі існуючої бази даних; крім того, доступні опції для генерації абсолютно нової бази даних на основі наявних сутнісних файлів. CSDL - Conceptual schema definition language (CSDL) SSDL - store schema definition language (SSDL) MSL - mapping specification language (MSL) На основі мови XML, які відповідно описують концептуальну модель, модель зберігання даних, а також відповідність між цими моделями.
  • 16. Генерація файла *.edmx Andrey Gladky KspDevelop@gmail.com 16 Другий спосіб генерації *.edmx-файда – використання візуального конструктора EDM з середовища Visual Studio. Виберіть пункт меню Project => Add New ltem і вставте новий елемент ADO.NET Entity Data Model