Entity Framework (EF) — структура об'єктно-реляційного відображення (ORM) з відкритим кодом для ADO.NET. Вона була частиною .NET Framework, але з версії 6 Entity Framework стала відокремленою від .NET Framework.
Тип | Object-relational mapping |
---|---|
Автор | Microsoft |
Розробник | |
Перший випуск | 11 серпня 2008 |
Стабільний випуск | Entity Framework 6: v6.4.4 Entity Framework Core: v3.1.4 (Entity Framework 6: 22 квітня 2020 Entity Framework Core: 22 квітня 2020 ) |
Версії | 6.4.4 (14 травня 2020)[3] |
Нестабільний випуск | Entity Framework Core: v5.0.0-preview.3.20181.2 (Entity Framework Core: 31 березня 2020 ) |
Платформа | .NET Framework, .NET |
Мова програмування | C# |
Ліцензія | Apache License 2.0 |
Репозиторій | https://github.com/dotnet/ef6 https://github.com/dotnet/efcore |
Вебсайт | msdn.microsoft.com/en-us/data/ef.aspx |
Огляд
Entity Framework - це набір технологій в ADO.NET, які підтримують розробку програмно-орієнтованих на дані програмних додатків. Архітектори та розробники програм, орієнтованих на дані, зазвичай борються з необхідністю досягнення двох дуже різних цілей. Вони повинні моделювати сутності, взаємозв'язки та логіку бізнес-проблем, які вони вирішують, а також повинні працювати з движками даних, що використовуються для зберігання та отримання даних. Дані можуть охоплювати кілька систем зберігання, кожна з яких має власні протоколи; навіть програми, які працюють з єдиною системою зберігання, повинні збалансувати вимоги системи зберігання та вимоги щодо написання ефективного та ремонтопридатного коду програми.
Історія
Перша версія Entity Framework (EFv1) була включена в. NET Framework 3.5 з пакетом оновлень 1 та пакетом оновлень 1 для Visual Studio 2008, випущеними 11 серпня 2008 року. Ця версія була широко розкритикована, навіть залучивши "вотум недовіри", підписаний приблизно однією тисячею розробників.
Друга версія Entity Framework, названа Entity Framework 4.0 (EFv4), була випущена як частина. NET 4.0 12 квітня 2010 р. Та розглянуто багато зауважень щодо версії 1.
Третя версія Entity Framework, версія 4.1, була випущена 12 квітня 2011 року за підтримки Code First.
Оновлення версії 4.1 під назвою Entity Framework 4.1 Update 1 було випущено 25 липня 2011 року. Він включає виправлення помилок та нові підтримувані типи.
Версія 4.3.1 була випущена 29 лютого 2012 р. Було кілька оновлень, таких як підтримка міграції.
Версія 5.0.0 була випущена 11 серпня 2012 р. і призначена для. NET framework 4.5. Крім того, ця версія доступна для. Net framework 4, але без будь-яких переваг виконання під час версії 4.
Версія 6.0 була випущена 17 жовтня 2013 р. і тепер є проектом з відкритим кодом, ліцензованим під ліцензією Apache v2. Як ASP. NET MVC, його вихідний код розміщений на GitHub за допомогою Git. Ця версія має низку вдосконалень для підтримки першого коду .
Entity Framework Core 1.0 ліцензований під ліцензією Apache v2 і повністю будується у відкритому режимі на GitHub [ 26 липня 2017 у Wayback Machine.] . Хоча Entity Framework Core 1.0 має деякі концептуальні подібності з попередніми версіями Entity Framework, це абсолютно нова кодова база, розроблена для того, щоб бути більш ефективною, потужною, гнучкою та розширюваною, працюватиме в Windows, Linux та OSX та підтримуватиме новий діапазон реляційних та NOSQL сховищ даних.
Entity Framework Core 2.0 був випущений 14 серпня 2017 року разом з Visual Studio 2017 15.3 та ASP. NET Core 2.0
Entity Framework Core 3.0 був випущений 23 вересня 2019 року разом з Visual Studio 2019 16.3 та ASP. NET Core 3.0,
Архітектура
Архітектура ADO.NET Entity Framework, знизу вгору, складається з наступного:
- Постачальники джерел даних, які абстрагуються від ADO. NET-інтерфейсів для підключення до бази даних під час програмування за концептуальною схемою.
- Постачальник карт, постачальник даних, що перетворює дерево команд Entity SQL у запит у власному ароматі бази даних SQL. Він включає мост для конкретного магазину, який є компонентом, відповідальним за перетворення загального дерева команд у дерево команд для конкретного магазину.
- EDM синтаксичний аналізатор та перегляд, який приймає специфікацію SDL моделі даних та способи її відображення на базовій реляційній моделі та дозволяє програмувати проти концептуальної моделі. За допомогою реляційної схеми вона створює подання даних, що відповідають концептуальній моделі. Він об'єднує інформацію з декількох таблиць, щоб об'єднати їх в сутність, і розбиває оновлення для сутності на кілька оновлень до тієї таблиці, що внесла до цієї сутності.
- Конвеєр запитів та оновлень, обробляє запити, фільтрує та оновлює запити, щоб перетворити їх у канонічні дерева команд, які потім перетворюються у запити, що стосуються магазину, провайдером карт.
- Служби метаданих, які обробляють усі метадані, пов’язані з сутностями, взаємозв’язками та зіставленнями.
- Транзакції для інтеграції з транзакційними можливостями базового магазину. Якщо базовий магазин не підтримує транзакції, підтримка для нього повинна бути реалізована на цьому рівні.
- API концептуального рівня, час виконання, який виставляє модель програмування для кодування проти концептуальної схеми. Це слідує ADO. NET шаблон використання об'єктів Connection для посилання на постачальника карт, використання командних об'єктів для надсилання запиту та повернення EntityResultSets або EntitySets, що містять результат.
- Відключені компоненти, які локально кешують набори даних та набори сутності для використання ADO. NET Entity Framework в інколи пов'язаному середовищі.
- Вбудована база даних : ADO. NET Entity Framework включає легку вбудовану базу даних для кешування на стороні клієнта та запитів реляційних даних.
- Інструменти проектування, такі як Mapping Designer, також входять до складу ADO. NET Entity Framework, що спрощує завдання зіставлення концептуальної схеми з реляційною схемою та вказівки, які властивості типу сутності відповідають якій таблиці в базі даних.
- Рівень програмування, який виставляє EDM як конструкції програмування, які можуть використовуватися мовами програмування.
- Об'єктні служби автоматично генерують код для класів CLR, які надають ті самі властивості, що й сутність, таким чином дозволяючи створювати екземпляри сутностей як. NET-об'єктів.
- Вебслужби, які виставляють сутності як вебслужби.
- Послуги високого рівня, такі як служби звітності, які працюють на сутності, а не на реляційні дані.
Модель даних сутності
Модель даних сутності ( EDM ) визначає концептуальну модель (CSDL) даних, використовуючи техніку моделювання, яка сама називається Entity Data Model, розширеною версією моделі сутність-взаємозв'язок. Модель даних насамперед описує Сутності та Асоціації, в яких вони беруть участь. Схема EDM виражена в мові визначення схеми (SDL), яка є додатком XML (розширена мова розмітки). Крім того, також має бути вказано відображення (MSL) елементів концептуальної схеми (CSDL) на схему зберігання (SSDL). Специфікація відображення також виражається в XML.
Visual Studio також пропонує Entity Designer для візуального створення EDM та специфікації відображення. Результатом роботи інструменту є XML-файл (* .edmx) із зазначенням схеми та відображення. Файл Edmx містить артефакти метаданих EF (вміст CSDL / MSL / SSDL). Ці три файли (csdl, msl, ssdl) також можна створювати або редагувати вручну.
Картування
Майстер моделей даних сутності у Visual Studio спочатку генерує співвідношення один до одного (1: 1) між схемою бази даних та концептуальною схемою у більшості випадків. У реляційній схемі елементи складаються з таблиць, при цьому первинний та зовнішній ключі склеюють відповідні таблиці. На відміну від них, Типи сутності визначають концептуальну схему даних.
Типи сутності являють собою сукупність декількох набраних полів - кожне поле відображається в певний стовпець бази даних - і може містити інформацію з декількох фізичних таблиць. Типи сутності можуть бути пов’язані між собою, незалежно від зв’язків у фізичній схемі. Пов’язані сутності також виставляються подібним чином - через поле, ім’я якого позначає відношення, у якому вони беруть участь, і доступ до якого замість отримання значення з якогось стовпця в базі даних перетинає зв’язок і повертає сутність (або колекцію сутностей) пов'язано з.
Типи сутності утворюють клас об'єктів, яким відповідають сутності, причому Сутності є екземплярами типів сутності. Суб'єкти представляють окремі об'єкти, які складають частину проблеми, що вирішується додатком, і індексуються ключем. Наприклад, перетворюючи описану вище фізичну схему, ми матимемо два типи сутності:
- CustomerEntity, що містить ім’я клієнта з таблиці Клієнти та адресу замовника з таблиці Контакти .
- OrderEntity, який інкапсулює замовлення певного замовника, отримуючи його з таблиці Замовлення .
Логічна схема та її відображення з фізичною схемою представлені у вигляді моделі даних сутності (EDM), вказаної як XML-файл. ADO. NET Entity Framework використовує EDM для фактичного виконання зіставлення, дозволяючи додатку працювати з сутностями, одночасно абстрагуючись від використання ADO. NET, такі як DataSet і RecordSet . ADO. NET Entity Framework виконує об'єднання, необхідні для отримання довідкової інформації сутності з декількох таблиць, або коли обв'язується зв'язок. Коли об’єкт оновлюється, він відстежує, з якої таблиці походить інформація, та видає оператори оновлення SQL для оновлення таблиць, в яких оновлено деякі дані. ADO. NET Entity Framework використовує eSQL, похідну від SQL, для виконання запитів, теоретичних операцій з наборів та оновлень сутностей та їх взаємозв’язків. Запити в eSQL, якщо потрібно, потім перекладаються на власний SQL-підхід до базової бази даних.
Типи об'єктів та набори сутностей просто формують логічну схему EDM і можуть бути виставлені як будь-що. ADO. NET Entity Framework включає Object Service, яка представляє ці сутності як Об'єкти з елементами та зв'язками, виставленими як властивості. Таким чином, об'єкти Entity є лише інтерфейсом до екземплярів типів сутності EDM, що дозволяє об'єктно-орієнтованим мовам отримувати доступ до них і використовувати їх. Подібним чином можна створити інші інтерфейси, які виставляють сутності через вебслужби (наприклад, WCF Data Services ) або XML, який використовується, коли сутності серіалізуються для постійного зберігання або бездротової передачі.
Суб'єкти
Сутності ** - це екземпляри EntityType s; вони представляють окремі екземпляри об'єктів (наприклад, клієнта, замовлень ), до яких відноситься інформація. Ідентичність сутності визначається типом сутності, екземпляром якої вона є; у цьому сенсі тип сутності визначає клас, до якого належить сутність, а також визначає, які властивості матиме сутність. Властивості описують деякий аспект сутності, надаючи їй ім'я та тип. Властивості типу сутності в ADO. NET Entity Framework повністю набрані та повністю сумісні з системою типів, що використовується в системі СУБД, а також із загальною системою типів. NET Framework. Властивість може бути SimpleType або ComplexType, а також може бути багатозначною. Усі EntityType належать до деякого простору імен і мають властивість EntityKey, яка однозначно ідентифікує кожен екземпляр типу сутності. Різні типи властивостей розрізняють наступним чином:
- SimpleType, відповідає примітивним типам даних, таким як цілі числа, символи та числа з плаваючою комою .
- ComplexType - це сукупність безлічі властивостей типу SimpleType або ComplexType . На відміну від EntityType, однак, ComplexTypes не можуть мати EntityKey . В Entity Framework v1 ComplexTypes неможливо успадкувати.
Усі екземпляри сутності розміщуються в EntityContainers, які є контейнерами для кожного проекту. Кожен проект має один або кілька іменованих EntityContainers, які можуть посилатися на сутності в декількох просторах імен і типах сутності. Кілька екземплярів одного типу сутності можуть зберігатися у колекціях, які називаються EntitySets. Один тип сутності може мати кілька EntitySets.
Відносини
Будь-які два типи сутності можуть бути пов’язані як відношенням асоціації, так і відношенням обмеження. Наприклад, відвантаження товару клієнту є асоціацією, тоді як замовлення містить деталі замовлення - це відношення стримування. Зв'язок стримування також може бути використаний для моделювання успадкування між сутностями. Відношення між двома типами сутності задається типом відносин, екземпляри якого, які називаються відносинами, відносять екземпляри сутності. У майбутніх випусках можуть бути представлені інші типи відносин, такі як Композиція або Ідентифікація. Типи відносин характеризуються ступенем (суттєвістю) або кількістю типів сутностей, які вони пов’язують, та їх кратністю. Однак у первісному випуску ADO.NET Entity Framework відносини обмежуються двійковими (другого ступеня) двонаправленими відносинами. Кратність визначає, скільки екземплярів сутності можуть бути пов'язані між собою. На основі множинності відносини можуть бути як один до одного, один до багатьох, так і багато до багатьох.
Запит даних
Сутність SQL
ADO. NET Entity Framework використовує варіант мови структурованих запитів, названий Entity SQL, який спрямований на написання декларативних запитів та оновлення сутностей та взаємозв’язків сутності - на концептуальному рівні. Він відрізняється від SQL тим, що не має явних конструкцій для об'єднань, оскільки EDM призначений для абстрактного розподілу даних між таблицями. Запити щодо концептуальної моделі полегшуються класами EntityClient, які приймають запит Entity SQL. Конвеєр запитів аналізує запит Entity SQL у дереві команд, розподіляючи запит за кількома таблицями, який передається постачальнику EntityClient. Як ADO. Постачальники даних NET, постачальник EntityClient також ініціалізується за допомогою об’єкта Connection, який на додаток до звичайних параметрів сховища даних та інформації про автентифікацію вимагає схеми SDL та інформації зіставлення. Потім постачальник EntityClient перетворює дерево команд Entity SQL у SQL-запит у власному ароматі бази даних. Потім виконання запиту повертає Entity SQL ResultSet, який не обмежується табличною структурою, на відміну від ADO. NET ResultSets.
Сутність SQL покращує SQL, додаючи внутрішню підтримку для:
- Типи, як ADO. NET-сутності повністю набрані.
- EntitySets, які розглядаються як колекції сутностей.
- Композованість, яка знімає обмеження щодо того, де можна використовувати підзапити.
LINQ
Постачальник LINQ to Entities дозволяє використовувати LINQ для запитів різних джерел даних СУБД. Доступні кілька постачальників послуг баз даних із підтримкою Entity Framework.
Нативний SQL
У Entity Framework v4 нові методи ExecuteStoreQuery () та ExecuteStoreCommand () були додані до класу ObjectContext.
Візуалізатори
Visual Studio має функцію під назвою Visualizer. Запит LINQ, написаний у Visual Studio, можна розглядати як власний SQL за допомогою Visualizer під час сеансу налагодження. За допомогою VisualStudioGallery [ 28 грудня 2010 у Wayback Machine.] доступний візуалізатор LINQ to Entities (запит об’єкта), націлений на всі СУБД.
Примітки
- . Архів оригіналу за 16 вересня 2020. Процитовано 21 жовтня 2020.
- . Архів оригіналу за 24 березня 2021. Процитовано 21 жовтня 2020.
- Release 6.4.4 — 2020.
- . Архів оригіналу за 26 жовтня 2020. Процитовано 21 жовтня 2020.
- . ADO.NET team blog. 11 травня 2009. Архів оригіналу за 20 січня 2010. Процитовано 1 листопада 2011.
- . ADO.NET team blog. 29 лютого 2012. Архів оригіналу за 25 березня 2012. Процитовано 27 березня 2012.
- . 11 серпня 2012. Архів оригіналу за 7 вересня 2017. Процитовано 21 жовтня 2020.
- . 17 жовтня 2013. Архів оригіналу за 30 березня 2014.
- . 14 вересня 2016. Архів оригіналу за 10 січня 2019. Процитовано 21 жовтня 2020.
- . Архів оригіналу за 4 серпня 2016. Процитовано 21 жовтня 2020.
- . 19 травня 2014. Архів оригіналу за 29 вересня 2015.
- . .NET Blog. 14 серпня 2017. Архів оригіналу за 21 січня 2018. Процитовано 21 жовтня 2020.
- . .NET Blog. 23 вересня 2019. Архів оригіналу за 1 червня 2020. Процитовано 21 жовтня 2020.
- Kogent Solutions Inc. (2009), ASP.NET 3.5 Black Book, Dreamtech Press, ISBN
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Entity Framework EF struktura ob yektno relyacijnogo vidobrazhennya ORM z vidkritim kodom dlya ADO NET Vona bula chastinoyu NET Framework ale z versiyi 6 Entity Framework stala vidokremlenoyu vid NET Framework Entity FrameworkTipObject relational mappingAvtorMicrosoftRozrobnikPershij vipusk11 serpnya 2008 15 rokiv tomu 2008 08 11 Stabilnij vipuskEntity Framework 6 v6 4 4 Entity Framework Core v3 1 4 Entity Framework 6 22 kvitnya 2020 4 roki tomu 2020 04 22 Entity Framework Core 22 kvitnya 2020 4 roki tomu 2020 04 22 Versiyi6 4 4 14 travnya 2020 3 Nestabilnij vipuskEntity Framework Core v5 0 0 preview 3 20181 2 Entity Framework Core 31 bereznya 2020 4 roki tomu 2020 03 31 Platforma NET Framework NETMova programuvannyaC LicenziyaApache License 2 0Repozitorijhttps github com dotnet ef6 https github com dotnet efcoreVebsajtmsdn microsoft com en us data ef aspxOglyadEntity Framework ce nabir tehnologij v ADO NET yaki pidtrimuyut rozrobku programno oriyentovanih na dani programnih dodatkiv Arhitektori ta rozrobniki program oriyentovanih na dani zazvichaj boryutsya z neobhidnistyu dosyagnennya dvoh duzhe riznih cilej Voni povinni modelyuvati sutnosti vzayemozv yazki ta logiku biznes problem yaki voni virishuyut a takozh povinni pracyuvati z dvizhkami danih sho vikoristovuyutsya dlya zberigannya ta otrimannya danih Dani mozhut ohoplyuvati kilka sistem zberigannya kozhna z yakih maye vlasni protokoli navit programi yaki pracyuyut z yedinoyu sistemoyu zberigannya povinni zbalansuvati vimogi sistemi zberigannya ta vimogi shodo napisannya efektivnogo ta remontopridatnogo kodu programi IstoriyaPersha versiya Entity Framework EFv1 bula vklyuchena v NET Framework 3 5 z paketom onovlen 1 ta paketom onovlen 1 dlya Visual Studio 2008 vipushenimi 11 serpnya 2008 roku Cya versiya bula shiroko rozkritikovana navit zaluchivshi votum nedoviri pidpisanij priblizno odniyeyu tisyacheyu rozrobnikiv Druga versiya Entity Framework nazvana Entity Framework 4 0 EFv4 bula vipushena yak chastina NET 4 0 12 kvitnya 2010 r Ta rozglyanuto bagato zauvazhen shodo versiyi 1 Tretya versiya Entity Framework versiya 4 1 bula vipushena 12 kvitnya 2011 roku za pidtrimki Code First Onovlennya versiyi 4 1 pid nazvoyu Entity Framework 4 1 Update 1 bulo vipusheno 25 lipnya 2011 roku Vin vklyuchaye vipravlennya pomilok ta novi pidtrimuvani tipi Versiya 4 3 1 bula vipushena 29 lyutogo 2012 r Bulo kilka onovlen takih yak pidtrimka migraciyi Versiya 5 0 0 bula vipushena 11 serpnya 2012 r i priznachena dlya NET framework 4 5 Krim togo cya versiya dostupna dlya Net framework 4 ale bez bud yakih perevag vikonannya pid chas versiyi 4 Versiya 6 0 bula vipushena 17 zhovtnya 2013 r i teper ye proektom z vidkritim kodom licenzovanim pid licenziyeyu Apache v2 Yak ASP NET MVC jogo vihidnij kod rozmishenij na GitHub za dopomogoyu Git Cya versiya maye nizku vdoskonalen dlya pidtrimki pershogo kodu Entity Framework Core 1 0 licenzovanij pid licenziyeyu Apache v2 i povnistyu buduyetsya u vidkritomu rezhimi na GitHub 26 lipnya 2017 u Wayback Machine Hocha Entity Framework Core 1 0 maye deyaki konceptualni podibnosti z poperednimi versiyami Entity Framework ce absolyutno nova kodova baza rozroblena dlya togo shob buti bilsh efektivnoyu potuzhnoyu gnuchkoyu ta rozshiryuvanoyu pracyuvatime v Windows Linux ta OSX ta pidtrimuvatime novij diapazon relyacijnih ta NOSQL shovish danih Entity Framework Core 2 0 buv vipushenij 14 serpnya 2017 roku razom z Visual Studio 2017 15 3 ta ASP NET Core 2 0 Entity Framework Core 3 0 buv vipushenij 23 veresnya 2019 roku razom z Visual Studio 2019 16 3 ta ASP NET Core 3 0 ArhitekturaADO Stek NET Entity Framework Arhitektura ADO NET Entity Framework znizu vgoru skladayetsya z nastupnogo Postachalniki dzherel danih yaki abstraguyutsya vid ADO NET interfejsiv dlya pidklyuchennya do bazi danih pid chas programuvannya za konceptualnoyu shemoyu Postachalnik kart postachalnik danih sho peretvoryuye derevo komand Entity SQL u zapit u vlasnomu aromati bazi danih SQL Vin vklyuchaye most dlya konkretnogo magazinu yakij ye komponentom vidpovidalnim za peretvorennya zagalnogo dereva komand u derevo komand dlya konkretnogo magazinu EDM sintaksichnij analizator ta pereglyad yakij prijmaye specifikaciyu SDL modeli danih ta sposobi yiyi vidobrazhennya na bazovij relyacijnij modeli ta dozvolyaye programuvati proti konceptualnoyi modeli Za dopomogoyu relyacijnoyi shemi vona stvoryuye podannya danih sho vidpovidayut konceptualnij modeli Vin ob yednuye informaciyu z dekilkoh tablic shob ob yednati yih v sutnist i rozbivaye onovlennya dlya sutnosti na kilka onovlen do tiyeyi tablici sho vnesla do ciyeyi sutnosti Konveyer zapitiv ta onovlen obroblyaye zapiti filtruye ta onovlyuye zapiti shob peretvoriti yih u kanonichni dereva komand yaki potim peretvoryuyutsya u zapiti sho stosuyutsya magazinu provajderom kart Sluzhbi metadanih yaki obroblyayut usi metadani pov yazani z sutnostyami vzayemozv yazkami ta zistavlennyami Tranzakciyi dlya integraciyi z tranzakcijnimi mozhlivostyami bazovogo magazinu Yaksho bazovij magazin ne pidtrimuye tranzakciyi pidtrimka dlya nogo povinna buti realizovana na comu rivni API konceptualnogo rivnya chas vikonannya yakij vistavlyaye model programuvannya dlya koduvannya proti konceptualnoyi shemi Ce sliduye ADO NET shablon vikoristannya ob yektiv Connection dlya posilannya na postachalnika kart vikoristannya komandnih ob yektiv dlya nadsilannya zapitu ta povernennya EntityResultSets abo EntitySets sho mistyat rezultat Vidklyucheni komponenti yaki lokalno keshuyut nabori danih ta nabori sutnosti dlya vikoristannya ADO NET Entity Framework v inkoli pov yazanomu seredovishi Vbudovana baza danih ADO NET Entity Framework vklyuchaye legku vbudovanu bazu danih dlya keshuvannya na storoni kliyenta ta zapitiv relyacijnih danih Instrumenti proektuvannya taki yak Mapping Designer takozh vhodyat do skladu ADO NET Entity Framework sho sproshuye zavdannya zistavlennya konceptualnoyi shemi z relyacijnoyu shemoyu ta vkazivki yaki vlastivosti tipu sutnosti vidpovidayut yakij tablici v bazi danih Riven programuvannya yakij vistavlyaye EDM yak konstrukciyi programuvannya yaki mozhut vikoristovuvatisya movami programuvannya Ob yektni sluzhbi avtomatichno generuyut kod dlya klasiv CLR yaki nadayut ti sami vlastivosti sho j sutnist takim chinom dozvolyayuchi stvoryuvati ekzemplyari sutnostej yak NET ob yektiv Vebsluzhbi yaki vistavlyayut sutnosti yak vebsluzhbi Poslugi visokogo rivnya taki yak sluzhbi zvitnosti yaki pracyuyut na sutnosti a ne na relyacijni dani Model danih sutnostiModel danih sutnosti EDM viznachaye konceptualnu model CSDL danih vikoristovuyuchi tehniku modelyuvannya yaka sama nazivayetsya Entity Data Model rozshirenoyu versiyeyu modeli sutnist vzayemozv yazok Model danih nasampered opisuye Sutnosti ta Asociaciyi v yakih voni berut uchast Shema EDM virazhena v movi viznachennya shemi SDL yaka ye dodatkom XML rozshirena mova rozmitki Krim togo takozh maye buti vkazano vidobrazhennya MSL elementiv konceptualnoyi shemi CSDL na shemu zberigannya SSDL Specifikaciya vidobrazhennya takozh virazhayetsya v XML Visual Studio takozh proponuye Entity Designer dlya vizualnogo stvorennya EDM ta specifikaciyi vidobrazhennya Rezultatom roboti instrumentu ye XML fajl edmx iz zaznachennyam shemi ta vidobrazhennya Fajl Edmx mistit artefakti metadanih EF vmist CSDL MSL SSDL Ci tri fajli csdl msl ssdl takozh mozhna stvoryuvati abo redaguvati vruchnu Kartuvannya Majster modelej danih sutnosti u Visual Studio spochatku generuye spivvidnoshennya odin do odnogo 1 1 mizh shemoyu bazi danih ta konceptualnoyu shemoyu u bilshosti vipadkiv U relyacijnij shemi elementi skladayutsya z tablic pri comu pervinnij ta zovnishnij klyuchi skleyuyut vidpovidni tablici Na vidminu vid nih Tipi sutnosti viznachayut konceptualnu shemu danih Tipi sutnosti yavlyayut soboyu sukupnist dekilkoh nabranih poliv kozhne pole vidobrazhayetsya v pevnij stovpec bazi danih i mozhe mistiti informaciyu z dekilkoh fizichnih tablic Tipi sutnosti mozhut buti pov yazani mizh soboyu nezalezhno vid zv yazkiv u fizichnij shemi Pov yazani sutnosti takozh vistavlyayutsya podibnim chinom cherez pole im ya yakogo poznachaye vidnoshennya u yakomu voni berut uchast i dostup do yakogo zamist otrimannya znachennya z yakogos stovpcya v bazi danih peretinaye zv yazok i povertaye sutnist abo kolekciyu sutnostej pov yazano z Tipi sutnosti utvoryuyut klas ob yektiv yakim vidpovidayut sutnosti prichomu Sutnosti ye ekzemplyarami tipiv sutnosti Sub yekti predstavlyayut okremi ob yekti yaki skladayut chastinu problemi sho virishuyetsya dodatkom i indeksuyutsya klyuchem Napriklad peretvoryuyuchi opisanu vishe fizichnu shemu mi matimemo dva tipi sutnosti CustomerEntity sho mistit im ya kliyenta z tablici Kliyenti ta adresu zamovnika z tablici Kontakti OrderEntity yakij inkapsulyuye zamovlennya pevnogo zamovnika otrimuyuchi jogo z tablici Zamovlennya Logichna shema ta yiyi vidobrazhennya z fizichnoyu shemoyu predstavleni u viglyadi modeli danih sutnosti EDM vkazanoyi yak XML fajl ADO NET Entity Framework vikoristovuye EDM dlya faktichnogo vikonannya zistavlennya dozvolyayuchi dodatku pracyuvati z sutnostyami odnochasno abstraguyuchis vid vikoristannya ADO NET taki yak DataSet i RecordSet ADO NET Entity Framework vikonuye ob yednannya neobhidni dlya otrimannya dovidkovoyi informaciyi sutnosti z dekilkoh tablic abo koli obv yazuyetsya zv yazok Koli ob yekt onovlyuyetsya vin vidstezhuye z yakoyi tablici pohodit informaciya ta vidaye operatori onovlennya SQL dlya onovlennya tablic v yakih onovleno deyaki dani ADO NET Entity Framework vikoristovuye eSQL pohidnu vid SQL dlya vikonannya zapitiv teoretichnih operacij z naboriv ta onovlen sutnostej ta yih vzayemozv yazkiv Zapiti v eSQL yaksho potribno potim perekladayutsya na vlasnij SQL pidhid do bazovoyi bazi danih Tipi ob yektiv ta nabori sutnostej prosto formuyut logichnu shemu EDM i mozhut buti vistavleni yak bud sho ADO NET Entity Framework vklyuchaye Object Service yaka predstavlyaye ci sutnosti yak Ob yekti z elementami ta zv yazkami vistavlenimi yak vlastivosti Takim chinom ob yekti Entity ye lishe interfejsom do ekzemplyariv tipiv sutnosti EDM sho dozvolyaye ob yektno oriyentovanim movam otrimuvati dostup do nih i vikoristovuvati yih Podibnim chinom mozhna stvoriti inshi interfejsi yaki vistavlyayut sutnosti cherez vebsluzhbi napriklad WCF Data Services abo XML yakij vikoristovuyetsya koli sutnosti serializuyutsya dlya postijnogo zberigannya abo bezdrotovoyi peredachi Sub yekti Sutnosti ce ekzemplyari EntityType s voni predstavlyayut okremi ekzemplyari ob yektiv napriklad kliyenta zamovlen do yakih vidnositsya informaciya Identichnist sutnosti viznachayetsya tipom sutnosti ekzemplyarom yakoyi vona ye u comu sensi tip sutnosti viznachaye klas do yakogo nalezhit sutnist a takozh viznachaye yaki vlastivosti matime sutnist Vlastivosti opisuyut deyakij aspekt sutnosti nadayuchi yij im ya ta tip Vlastivosti tipu sutnosti v ADO NET Entity Framework povnistyu nabrani ta povnistyu sumisni z sistemoyu tipiv sho vikoristovuyetsya v sistemi SUBD a takozh iz zagalnoyu sistemoyu tipiv NET Framework Vlastivist mozhe buti SimpleType abo ComplexType a takozh mozhe buti bagatoznachnoyu Usi EntityType nalezhat do deyakogo prostoru imen i mayut vlastivist EntityKey yaka odnoznachno identifikuye kozhen ekzemplyar tipu sutnosti Rizni tipi vlastivostej rozriznyayut nastupnim chinom SimpleType vidpovidaye primitivnim tipam danih takim yak cili chisla simvoli ta chisla z plavayuchoyu komoyu ComplexType ce sukupnist bezlichi vlastivostej tipu SimpleType abo ComplexType Na vidminu vid EntityType odnak ComplexTypes ne mozhut mati EntityKey V Entity Framework v1 ComplexTypes nemozhlivo uspadkuvati Usi ekzemplyari sutnosti rozmishuyutsya v EntityContainers yaki ye kontejnerami dlya kozhnogo proektu Kozhen proekt maye odin abo kilka imenovanih EntityContainers yaki mozhut posilatisya na sutnosti v dekilkoh prostorah imen i tipah sutnosti Kilka ekzemplyariv odnogo tipu sutnosti mozhut zberigatisya u kolekciyah yaki nazivayutsya EntitySets Odin tip sutnosti mozhe mati kilka EntitySets Vidnosini Bud yaki dva tipi sutnosti mozhut buti pov yazani yak vidnoshennyam asociaciyi tak i vidnoshennyam obmezhennya Napriklad vidvantazhennya tovaru kliyentu ye asociaciyeyu todi yak zamovlennya mistit detali zamovlennya ce vidnoshennya strimuvannya Zv yazok strimuvannya takozh mozhe buti vikoristanij dlya modelyuvannya uspadkuvannya mizh sutnostyami Vidnoshennya mizh dvoma tipami sutnosti zadayetsya tipom vidnosin ekzemplyari yakogo yaki nazivayutsya vidnosinami vidnosyat ekzemplyari sutnosti U majbutnih vipuskah mozhut buti predstavleni inshi tipi vidnosin taki yak Kompoziciya abo Identifikaciya Tipi vidnosin harakterizuyutsya stupenem suttyevistyu abo kilkistyu tipiv sutnostej yaki voni pov yazuyut ta yih kratnistyu Odnak u pervisnomu vipusku ADO NET Entity Framework vidnosini obmezhuyutsya dvijkovimi drugogo stupenya dvonapravlenimi vidnosinami Kratnist viznachaye skilki ekzemplyariv sutnosti mozhut buti pov yazani mizh soboyu Na osnovi mnozhinnosti vidnosini mozhut buti yak odin do odnogo odin do bagatoh tak i bagato do bagatoh Zapit danihSutnist SQL ADO NET Entity Framework vikoristovuye variant movi strukturovanih zapitiv nazvanij Entity SQL yakij spryamovanij na napisannya deklarativnih zapitiv ta onovlennya sutnostej ta vzayemozv yazkiv sutnosti na konceptualnomu rivni Vin vidriznyayetsya vid SQL tim sho ne maye yavnih konstrukcij dlya ob yednan oskilki EDM priznachenij dlya abstraktnogo rozpodilu danih mizh tablicyami Zapiti shodo konceptualnoyi modeli polegshuyutsya klasami EntityClient yaki prijmayut zapit Entity SQL Konveyer zapitiv analizuye zapit Entity SQL u derevi komand rozpodilyayuchi zapit za kilkoma tablicyami yakij peredayetsya postachalniku EntityClient Yak ADO Postachalniki danih NET postachalnik EntityClient takozh inicializuyetsya za dopomogoyu ob yekta Connection yakij na dodatok do zvichajnih parametriv shovisha danih ta informaciyi pro avtentifikaciyu vimagaye shemi SDL ta informaciyi zistavlennya Potim postachalnik EntityClient peretvoryuye derevo komand Entity SQL u SQL zapit u vlasnomu aromati bazi danih Potim vikonannya zapitu povertaye Entity SQL ResultSet yakij ne obmezhuyetsya tablichnoyu strukturoyu na vidminu vid ADO NET ResultSets Sutnist SQL pokrashuye SQL dodayuchi vnutrishnyu pidtrimku dlya Tipi yak ADO NET sutnosti povnistyu nabrani EntitySets yaki rozglyadayutsya yak kolekciyi sutnostej Kompozovanist yaka znimaye obmezhennya shodo togo de mozhna vikoristovuvati pidzapiti LINQ Postachalnik LINQ to Entities dozvolyaye vikoristovuvati LINQ dlya zapitiv riznih dzherel danih SUBD Dostupni kilka postachalnikiv poslug baz danih iz pidtrimkoyu Entity Framework Nativnij SQL U Entity Framework v4 novi metodi ExecuteStoreQuery ta ExecuteStoreCommand buli dodani do klasu ObjectContext Vizualizatori Visual Studio maye funkciyu pid nazvoyu Visualizer Zapit LINQ napisanij u Visual Studio mozhna rozglyadati yak vlasnij SQL za dopomogoyu Visualizer pid chas seansu nalagodzhennya Za dopomogoyu VisualStudioGallery 28 grudnya 2010 u Wayback Machine dostupnij vizualizator LINQ to Entities zapit ob yekta nacilenij na vsi SUBD Primitki Arhiv originalu za 16 veresnya 2020 Procitovano 21 zhovtnya 2020 Arhiv originalu za 24 bereznya 2021 Procitovano 21 zhovtnya 2020 Release 6 4 4 2020 Arhiv originalu za 26 zhovtnya 2020 Procitovano 21 zhovtnya 2020 ADO NET team blog 11 travnya 2009 Arhiv originalu za 20 sichnya 2010 Procitovano 1 listopada 2011 ADO NET team blog 29 lyutogo 2012 Arhiv originalu za 25 bereznya 2012 Procitovano 27 bereznya 2012 11 serpnya 2012 Arhiv originalu za 7 veresnya 2017 Procitovano 21 zhovtnya 2020 17 zhovtnya 2013 Arhiv originalu za 30 bereznya 2014 14 veresnya 2016 Arhiv originalu za 10 sichnya 2019 Procitovano 21 zhovtnya 2020 Arhiv originalu za 4 serpnya 2016 Procitovano 21 zhovtnya 2020 19 travnya 2014 Arhiv originalu za 29 veresnya 2015 NET Blog 14 serpnya 2017 Arhiv originalu za 21 sichnya 2018 Procitovano 21 zhovtnya 2020 NET Blog 23 veresnya 2019 Arhiv originalu za 1 chervnya 2020 Procitovano 21 zhovtnya 2020 Kogent Solutions Inc 2009 ASP NET 3 5 Black Book Dreamtech Press ISBN 81 7722 831 5