Что такое Entity Framework?
Entity Framework был представлен корпорацией Microsoft в 2008 году как основное средством взаимодействия между приложениями .NET и реляционными базами данных. Entity Framework - это инструмент, упрощающий сопоставление объектов в программном обеспечении с таблицами и столбцами реляционной базы данных.
- Entity Framework (EF) - это ORM-фреймворк с открытым исходным кодом для ADO.NET, который является частью .NET Framework.
- ORM обрабатывает создание соединений с базой данных и выполнение команд, а также результаты запросов и автоматическое предоставление этих результатов в качестве объектов приложения.
- ORM также помогает отслеживать изменения объектов приложения и может сохранять эти изменения в базе данных.
Почему Entity Framework?
Entity Framework - это ORM, нацеленная на повышение производительности за счет сокращения задач по сохранению данных, используемых в приложениях.
- Entity Framework может генерировать команды базы данных, необходимые для чтения или записи данных, а также выполнять их.
- При необходимости можно выразить запросы через объекты домена, используя LINQ.
- Entity Framework выполняет соответствующий запрос в базе данных, а затем предоставляет результаты в экземплярах объектов домена, чтобы вы могли работать с ними в приложении.
На данный момент существуют и другие ORM, такие как NHibernate и LLBLGen Pro. Большинство ORM обычно помещают типы домена непосредственно в схему базы данных.

Entity Framework имеет более сложный уровень отображения, поэтому позволяет настраивать сопоставления. Например, сопоставления единичного объекта с несколькими таблицами базы данных или даже с несколькими объектами в одной таблице.

- Entity Framework - это рекомендуемая Microsoft технология доступа к данным для новых приложений.
- ADO.NET также будет непосредственно ссылаться на эту технологию для наборов данных и таблиц данных.
- Entity Framework - это инструмент, в который активно вкладываются средства и усилия на протяжении уже нескольких лет.
- Корпорация Microsoft рекомендует использовать Entity Framework с ADO.NET или LINQ для SQL для всех новых разработок.
Концептуальная модель
Для разработчиков, которые ведут проекты, ориентированные на базу данных, преимущество Entity Framework заключается в том, что он позволяет сосредоточиться на бизнес-домене. Хотите, чтобы ваше приложение не ограничивалось только тем, что может сделать база данных?
- В Entity Framework основное внимание уделяется модели объектов в приложении, а не модели БД, которую вы используете для сохранения данных приложения.
- Концептуальная модель может быть согласованной со схемой базы данных или кардинально отличаться.
- Можно использовать Visual Designer для определения концептуальной модели, которая сможет генерировать классы - их вы будете использовать в своем приложении.
- Можно просто определить классы и использовать функцию Entity Framework под названием Code First. Таким образом вы зададите концептуальную модель для Entity Framework.

В любом случае Entity Framework обрабатывает то, как перейти от вашей концептуальной модели к базе данных. Таки вы можете запросить объекты концептуальной модели и работать с ними напрямую.
Функции
Ниже перечислены основные функции Entity Framework. В этот список вошли наиболее важные функции фреймворка, а также те, о которых разработчики часто задают вопросы.
- Entity Framework - это инструмент, созданный специалистами компании Microsoft.
- Entity Framework разрабатывается как продукт с открытым исходным кодом.
- Entity Framework больше не привязан и не зависит от цикла релизов .NET.
- Работает с любой реляционной базой данных и с действующим провайдером Entity Framework.
- Генерация команд SQL из LINQ в Entities.
- Entity Framework создает параметризованные запросы.
- Entity Framework позволяет вставлять, обновлять и удалять команды.
- Работает с визуальной моделью или с вашими собственными классами.
- Entity Framework поддерживает хранимые процедуры.