ADO.NET Entity Framework в складі. NET Framework

ADO.NET Entity Framework (EF) - об'єктно-орієнтована технологія доступу до даних, є object-relational mapping (ORM) рішенням для . NET Framework від Microsoft. Надає можливість взаємодії з об'єктами як за допомогою LINQ у вигляді LINQ to Entities, так і з використанням Entity SQL. Для полегшення побудови web-рішень використовується як ADO.NET Data Services ( Astoria), так і зв'язка з Windows Communication Foundation і Windows Presentation Foundation, що дозволяє будувати багаторівневі додатки, реалізуючи один з шаблонів проектування MVC, MVP або MVVM.


1. Історія

Реліз ADO.NET Entity Framework відбувся 11 серпня 2008 в складі . NET Framework 3.5 Service Pack 1 і Visual Studio 2008 Service Pack 1. В VS 2008 увійшов EDM Wizard для реверс-інжинірингу існуючих баз даних і EDM Designer для редагування згенерованих моделей або створення їх з нуля.

23 червня 2008, ще до релізу першої версії, на стадії фінального доведення Entity Framework V1, розпочався процес розробки Entity Framework V2.0. [1] За словами англ. Tim Mallalieu , Програмного менеджера LINQ to SQL і EF, в. NET Framework 4.0 саме Entity Framework стане рекомендованої технологією доступу до реляційних СУБД за допомогою LINQ. [2]

12 квітня 2010 у складі релізу Visual Studio 2010 і. NET Framework 4.0 був представлена ​​Entity Framework 4.0. Пізніше вже окремо від фреймворку були представлені версії: 4.1 (квітень 2011), 4.2 (жовтень 2011), 4.3 (лютий 2012).


2. Архітектура

3. Entity Data Model

4. Schema definition language

5. Entity SQL

Entity SQL являє собою мову, подібний мові SQL, який дозволяє виконувати запити до концептуальним моделям в Entity Framework [3].

6. LINQ to Entities

Це альтернативний інтерфейс LINQ API, використовуваний для звернення до бази даних. Він відокремлює сутнісну об'єктну модель даних від фізичної бази даних, вводячи логічне відображення між ними. Так наприклад, схеми реляційних баз даних не завжди підходять для побудови об'єктно-орієнтованих додатків і в результаті ми маємо об'єктну модель додатка істотно відрізняється від логічної моделі даних, в цьому випадку використовується LINQ to Entities, який використовує модель EDM (Entity Data Model). Тобто, якщо вам потрібно послабити зв'язок між вашою сутнісної об'єктною моделлю даних і фізичною моделлю даних, наприклад, якщо ваші сутнісні об'єкти конструюються з декількох таблиць або вам потрібна велика гнучкість у моделюванні ваших сутнісних об'єктів використовуйте LINQ to Entities.


Примітки

  1. Transparency in the design process - blogs.msdn.com/efdesign/archive/2008/06/23/transparency-in-the-design-process.aspx (Англ.) . Microsoft ADO.NET team Entity Framework Design blog (23.08.2008). Читальний - www.webcitation.org/66KwxDuHF з першоджерела 21 березня 2012.
  2. Update on LINQ to SQL and LINQ to Entities Roadmap - blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx (Англ.) . Microsoft ADO.NET team blog (29.10.2008). Читальний - www.webcitation.org/66Kwy9e4P з першоджерела 21 березня 2012.
  3. Загальні відомості про мову Entity SQL - msdn.microsoft.com/ru-ru/library/bb387145.aspx

Література

  • Julia Lerman Programming Entity Framework. - 2nd Edition. - O'Reilly, 2010. - 920 p. - ISBN 0-596-80726-0
  • Ендрю Троелсен Мова програмування C # 2010 і платформа. NET 4.0 = Pro C # 2010 and the. NET 4.0 Platform, 5ed. - М .: "Вильямс", 2010. - С. 1392. - ISBN 978-5-8459-1682-2
  • Крістіан Нейгел, Білл Івьен та ін C # 4.0 і платформа. NET 4 для професіоналів = Professional C # 4 and. NET 4. - М .: "Діалектика", 2010. - С. 1440. - ISBN 978-5-8459-1656-3


Перегляд цього шаблону API і фреймворки Microsoft
Графіка Desktop Window Manager Direct2D Direct3D (extensions) GDI / GDI + WPF Windows Color System Windows Image Acquisition Windows Imaging Component
Аудіо DirectMusic DirectSound DirectX plugin XACT Speech API XAudio2
Мультимедіа DirectX (Media Objects Video Acceleration) DirectInput DirectShow Image Mastering API Managed DirectX Media Foundation XNA Windows Media Video for Windows
Web MSHTML RSS Platform JScript VBScript BHO XDR SideBar Gadgets
Доступ до даних Data Access Components Extensible Storage Engine ADO.NET ADO.NET Entity Framework Sync Framework Jet Engine MSXML OLE DB OPC
Мережа Winsock ( LSP) Winsock Kernel Filtering Platform Network Driver Interface Specification Windows Rally BITS P2P API MSMQ MS MPI DirectPlay
Комунікації Messaging API Telephony API WCF
Win32 console Windows Script Host WMI (extensions) PowerShell Task Scheduler Offline Files Shadow Copy Windows Installer Error Reporting Event Log Common Log File System
Компонентна модель COM COM + ActiveX Distributed Component Object Model . NET Framework
Бібліотеки Base Class Library (BCL) Microsoft Foundation Classes (MFC) Active Template Library (ATL) Windows Template Library (WTL)
Драйвери пристроїв Windows Driver Model Windows Driver Foundation (KMDF UMDF) WDDM NDIS UAA Broadcast Driver Architecture VxD
Безпека Crypto API ( CAPICOM) Windows CardSpace Data Protection API Security Support Provider Interface (SSPI)
. NET ASP.NET ADO.NET Base Class Library (BCL) Remoting Silverlight TPL WCF WCS WPF WF
Програмне забезпечення EFx Factory Enterprise Library Composite UI CCF CSF
IPC MSRPC Dynamic Data Exchange (DDE) Remoting WCF
Доступність Active Accessibility UI Automation
Текст і многоязная
підтримка
DirectWrite Text Services Framework Text Object Model Input method editor Language Interface Pack Multilingual User Interface Uniscribe
Перегляд цього шаблону . NET Framework
Архітектура Base Class Library Common Language Infrastructure . NET Assembly метадані COM Interop
Інфраструктура Common Language Runtime Common Type System Common Intermediate Language Virtual Execution System Dynamic Language Runtime
Мови Microsoft C # Visual Basic. NET C + + / CLI ( Managed) Visual J # JScript. NET Windows PowerShell IronPython IronRuby F # Spec # Sing #
Інші мови A # Boo IronLisp L # Nemerle P # PascalABC.NET PHP Scala Delphi Prism
Windows Foundations Presentation Communication Workflow
Компоненти ADO.NET (Entity Framework Data Services) ASP.NET ( AJAX MVC Dynamic Data) . NET Remoting Language Integrated Query Windows CardSpace Windows Forms XAML ClickOnce Dynamic Language Runtime Parallel FX Library (PLINQ TPL)
Реалізації DotGNU Mono . NET Compact Framework ( Xbox 360) . NET Micro Framework Portable.NET XNA Framework Silverlight Shared Source Common Language Infrastructure
Порівняння C # і Java C # і Visual Basic. NET
Майбутні технології Acropolis Jasper