Как установить entity framework в visual studio 2019

Обновлено: 06.07.2024

Entity Framework Tools предназначены для помощи в создании приложений Entity Framework (EF). Полная документация по Entity Framework: Обзор-EF 6.

Entity Framework Tools, описанные на этой странице, используются для создания EDMX -файлов, которые не поддерживаются в EF Core. Сведения о создании модели EF Core из существующей базы данных см. в разделе реконструирование — EF Core. Дополнительные сведения о различиях между EF 6 и EF Core см. в разделе Сравнение EF 6 и EF Core.

С помощью Entity Framework Tools можно создать концептуальную модель на основе существующей базы данных, а затем графически визуализировать и изменить концептуальную модель. Либо можно сначала создать концептуальную модель с помощью графических средств, а затем создать базу данных, которая поддерживает эту модель. В любом случае можно автоматически обновлять модель при изменении основной базы данных и автоматически создавать код объектного уровня для приложения. Процессы создания базы данных и создания кода объектного уровня допускают настройку.

Средства Entity Framework устанавливаются как часть рабочей нагрузки хранения и обработки данных в Visual Studio Installer. Их также можно установить как отдельный компонент в категории SDK, библиотеки и платформы .

Ниже приведены специальные средства, составляющие Entity Framework средства в Visual Studio.

С помощью EDM (модель данных с использованием сущностей) мастера можно создать концептуальную модель на основе существующей базы данных и добавить в приложение сведения о подключении к базе данных.

Сначала можно создать концептуальную модель с помощью мастера создания базы данных , а затем создать базу данных, которая поддерживает эту модель.

Мастер обновления моделей можно использовать для обновления концептуальной модели, модели хранения и сопоставлений при внесении изменений в основную базу данных.

начиная с Visual Studio 2010, средства Entity Framework не поддерживаются SQL Server 2000 .

Средства создают или изменяют EDMX файл. Этот EDMX файл содержит сведения, описывающие концептуальную модель, модель хранения и сопоставления между ними. Дополнительные сведения см. в разделе EDMX.

Entity Framework 6 Power Tools помогают создавать приложения, использующие EDM. Power Tools может создать концептуальную модель, проверить существующую модель, создать файлы исходного кода, содержащие классы объектов на основе концептуальной модели, и создать файлы исходного кода, содержащие представления, создаваемые моделью. Подробные сведения см. в разделе предварительно созданные представления сопоставления.


Курс состоит из нескольких частей:


В качестве примера будем расматривать уже ставшее классическим — приложение списка дел. Для разработки приложения я буду использовать Visual Studio 2019(в Visual Studio 2017 процесс аналогичен).

Создание проекта


Назовем приложение и укажем путь к каталогу с проектом:


И выберем шаблон приложения API:


Модель

Создадим каталог Models и в новый каталог добавим первый класс TodoItem.cs, объекты которого будут описывать некоторые задачи списка дел в приложении:


В качестве СУБД мы будем использовать Sql Server, а доступ к базе данных будет осуществляться через Entity Framework Core и для начала установим фреймворк через встроенный пакетный менеджер NuGet:


Одним из подходов в работе с Entity Framework является подход «Code-First». Суть подхода заключается в том, что на основе модели приложения(в нашем случае модель представляет единственный класс — TodoItem.cs) формируется струткура базы данных(таблицы, первичные ключи, ссылки), вся эта работа происходит как бы «за кулисами» и напрямую с SQL мы не работаем. Обязательным условием класса модели является наличие поля первичного ключа, по умолчанию Entity Framework ищет целочисленное поле в имени которого присутствует подстрока «id» и формирует на его основе первичный ключ. Переопределить такое поведение можно с помощью специальных атрибутов или используя возможности Fluent API.

Главным компонентом в работе с Entity Framework является класс контекста базы данных, через который собственно и осуществляется доступ к данным в таблицах:


Базовый класс DbContext создает контекст БД и обеспечивает доступ к функциональности Entity Framework.

Для хранения данных приложения мы будем использовать SQL Server 2017 Express. Строки подключения хранятся в файле JSON под названием appsettings.json:


Далее нужно внести изменения в класс Startup.cs, добавив в метод ConfigureServices() следующий код:


Метод AddDbContext() настраивает службы, предоставляемые инфраструктурой Entity Framework Core для класса контекста базы EFTodoDBContext. Аргументом метода AddDbContext () является лямбда-выражение, которое получает объект options, конфигурирующий базу данных для класса контекста. В этом случае база данных конфигурируется с помощью метода UseSqlServer() и указания строки подключения.

Определим основные операции для работы с задачами в интерфейсе ITodoRepository:


Данный интерфейс позволяет нам не задумываться о конкретной реализации хранилища данных, возможно мы точно не определились с выбором СУБД или ORM фреймворком, сейчас это не важно, класс описывающий доступ к данным будет наследовать от этого интерфейса.
Реализуем репозиторий, который как уже сказано ранее, будет наследовать от ITodoRepository и использовать в качестве источника данных EFTodoDBContext:

Контроллер

Добавим в каталог Controllers класс TodoController.cs со следующим содержимым:

В своем конструкторе контроллер получает ссылку на объект типа ITodoRepository, но пока что инфраструктура MVC не знает, какой объект подставить при создании контроллера. Нужно создать сервис, который однозначно разрешит эту зависисмость, для этого внесем некотрые изменения в класс Startup.cs, добавив в метод ConfigureServices() следующий код:


Метод AddTransient<ITodoRepository, EFTodoRepository>() определяет сервис, который каждый раз, когда требуется экземпляр типа ITodoRepository, например в контроллере, создает новый экземпляр класс EFTodoRepository.

Полный код класса Startup.cs:

Миграции

Для того чтобы Entity Framework сгенерировал базу данных и таблицы на основе модели, нужно использовать процесс миграции базы данных. Миграции — это группа команд, которая выполняет подготовку базы данных для работы с Entity Framework. Они используются для создания и синхронизации базы данных. Команды можно выполнять как в консоли диспетчера пакетов (Package Manager Console), так и в Power Shell(Developer Power Shell). Мы будем использовать консоль диспетчера пакетов, для работы с Entity Framework потребуется установить пакет Microsoft.EntityFrameworkCore.Tools:


Запустим консоль диспетчера пакетов и выполним команду Add-Migration Initial:



В проекте появится новый каталог — Migrations, в котором будут хранится классы миграции, на основе которых и будут создаваться объекты в базе данных после выполнения команды Update-Database:


Web API готово, запустив приложение на локальном IIS Express мы можем протестировать работу контроллера.

Тестирование WebAPI

Создадим новую коллекцию запросов в Postman под названием TodoWebAPI:



Метод Create() после успешного создания задачи перенаправляет запрос на метод Get() с псевдонимом «GetTodoItem» и передает в качестве параметра Id только что созданной задачи, в результате чего в ответ на запрос мы получим созданный объект задачи в формате JSON.




На этом все, в следующей части реализуем пользовательский интерфейс с помощью JavaScript-фреймворка Angular.

EF Core можно использовать для разработки приложений в Windows с использованием Visual Studio. Рекомендуется использовать последнюю версию Visual Studio.

Получение среды выполнения Entity Framework Core

Чтобы добавить EF Core в приложение, установите пакет NuGet для поставщика базы данных, который вы хотите использовать.

Вы можете указать в команде dotnet add package конкретную версию, используя модификатор -v . Например, чтобы установить пакеты EF Core 2.2.0, добавьте к команде -v 2.2.0 .

Диалоговое окно диспетчера пакетов NuGet в Visual Studio

В меню Visual Studio выберите "Проект" "Управление пакетами NuGet"

Чтобы установить или обновить поставщик SQL Server, выберите пакет Microsoft.EntityFrameworkCore.SqlServer и подтвердите свой выбор.

Консоль диспетчера пакетов NuGet в Visual Studio

В меню Visual Studio выберите "Сервис" "Диспетчер пакетов NuGet" > "Консоль диспетчера пакетов"

Чтобы установить поставщик SQL Server, в консоли диспетчера пакетов выполните следующую команду:

Чтобы обновить поставщик, используйте команду Update-Package .

Чтобы указать конкретную версию, используйте модификатор -Version . Например, чтобы установить пакеты EF Core 2.2.0, добавьте в команды -Version 2.2.0 .

Получение инструментов Entity Framework Core

Вы можете установить инструменты для выполнения задач, связанных с EF Core, в своем проекте, таких как создание и применение миграций базы данных, а также создание модели EF Core на основе существующей базы данных.

Доступно два набора инструментов:

Инструменты консоли диспетчера пакетов работают в Visual Studio в Windows. Эти команды начинаются с глагола, например Add-Migration , Update-Database .

Хотя вы можете использовать команды dotnet ef в консоли диспетчера пакетов, в Visual Studio рекомендуется использовать инструменты консоли диспетчера пакетов:

Они автоматически работают для выбранного в PMC проекта в Visual Studio без переключения каталогов вручную.

Они автоматически открывают файлы, созданные командами в Visual Studio, после завершения соответствующей команды.

Средство dotnet ef должно быть установлено в качестве глобального или локального средства. Большинство разработчиков предпочитают устанавливать средство dotnet ef в качестве глобального средства, используя следующую команду:

Средство dotnet ef также может использоваться в качестве локального средства. Чтобы использовать его в качестве локального средства, восстановите зависимости проекта, в котором оно объявляется в качестве соответствующей зависимости, с помощью файла манифеста средства.

Чтобы обновить средства, используйте команду dotnet tool update .

Установите последнюю версию пакета Microsoft.EntityFrameworkCore.Design .

Всегда используйте версии пакетов инструментов, которые соответствуют основному номеру версии для пакетов среды выполнения.

Получение инструментов консоли диспетчера пакетов

Чтобы получить инструменты консоли диспетчера пакетов для EF Core, установите пакет Microsoft.EntityFrameworkCore.Tools . Например, в Visual Studio:

Обновление до последней версии EF Core

Каждый раз при выпуске новой версии EF Core мы также выпускаем новую версию поставщиков, которые входят в проект EF Core, например Microsoft.EntityFrameworkCore.SqlServer, Microsoft.EntityFrameworkCore.Sqlite и Microsoft.EntityFrameworkCore.InMemory. Кроме того, можно просто обновить поставщик до новой версии, чтобы получить все улучшения.

Если требуется обновить приложение, использующее сторонний поставщик базы данных, всегда ищите обновление поставщика, совместимое с нужной вам версией EF Core. Например, поставщики баз данных для версии 1.0 не совместимы с версией 2.0 среды выполнения EF Core.

Под управлением подразумевается поиск, скачивание, установка, настройка, обновление и удаление файлов сторонних разработчиков у себя в приложении.

Технически NuGet Manager представляет собой расширение для Visual Studio, доступное программисту в процессе работы над своим проектом. Если вы используете «студию» версии 2012 и выше, то NuGet уже заранее предустановлен и готов к работе. В случае версии 2010 его нужно установить вручную. Его можно скачать либо с официального сайта, либо установить напрямую из Visual Studio через менеджер дополнений.

Давайте откроем менеджер. Для этого в Solution Explorer щелкаем правой кнопкой мыши по рабочему проекту и в контекстном меню выбираем пункт «Manage NuGet Packages…»:


NuGet Manager открывается в новой вкладке в текстовом редакторе. Интерфейс у него довольно простой.

Три главные вкладки:

  1. Browse. Найти и установить нужные нам пакеты из хранилища NuGet
  2. Installed. Список уже установленных в нашем проекте библиотек
  3. Updates. Библиотеки в нашем проекте, которые можно обновить до новой версии

Также в интерфейсе менеджера представлены:

  1. Строка поиска. Мы можем искать нужную нам библиотеку, начав вводить ее название
  2. Кнопка «Обновить состояние окна»
  3. Галочка «Включать в выдачу предрелизные версии библиотек», например, какие-то тестовые или экспериментальные
  4. Выпадающий список Package source. В каком месте менеджер будет искать нужные нам библиотеки
  5. Кнопка «Настройки менеджера»
  6. Главная панель с результатами выдачи (слева)
  7. Панель с описанием того компонента, который мы выбрали (справа)


Попробуем установить какую-нибудь библиотеку к нам в проект, например, Entity Framework. Для этого переходим во вкладку Browse и в строке поиска начинаем вводить название нужного пакета. Далее выбираем его из списка и нажимаем кнопку Install. При необходимости можно выбрать определенную версию, отличную от стабильной последней, а также ознакомиться с информацией о данном пакете (авторы, лицензия и т.д.).


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


Теперь давайте более детально посмотрим, что конкретно сделал менеджер при установке этого компонента в наш проект:
1. Он определил, что для данного пакета нет никаких сторонних зависимостей. Если бы они были, то менеджер автоматически их определил и подтянул.
2. NuGet Manager добавил ссылку на установленный компонент в наш проект (References):


3. NuGet разместил скачанные файлы в специальной папке Packages, которая находится в корневой папке нашего приложения. Это очень удобно, ссылки в проекте теперь идут на эту папку:


4. В конфигурационный файл packages.config была добавлена запись о новом пакете:

5. В конфигурационный файл приложения web.config также были внесены необходимые изменения, чтобы подготовить компонент Entity Framework к работе:

Вот такие операции происходят, когда NuGet Manager добавляет новую библиотеку к нам в проект.

Подобным образом происходит и обновление, и удаление компонентов из нашего проекта. В случае удаления менеджер также автоматически вносит изменения в файлы нашего проекта – убирает записи из файла packages.config, удаляет соответствующие файлы в папке packages, убирает ссылки на эти библиотеки.

Давайте рассмотрим еще несколько моментов.

С NuGet Manager можно работать не только через графический интерфейс, но и через командную строку (консоль). Чтобы ее открыть, идем Tools -> NuGet Package Manager -> Package Manager Console.


Работа в консоли ничем не отличается от работы в графическом интерфейсе, это дело вкуса.

Управление осуществляется посредством специальных команд. Чтобы вывести в консоль список всех доступных команд нужно написать инструкцию:

Команд достаточно много, и описание каждой можно найти в официальной документации на сайте. Вот пример использования наиболее популярных команд.

Добавляем пакет Entity Framework в текущий проект:

Обновляем ранее установленный пакет:

Переустанавливаем ВСЕ пакеты во всех проектах в данном решении:

Подведем краткий итог. NuGet – это просто незаменимый инструмент для разработчика на сегодняшний день. Он автоматизирует весь процесс работы с пакетами в проекте, а именно поиск, скачивание, установка, настройка, обновление и удаление файлов.

В видео версии этого урока более подробно и наглядно показана работа с этим инструментом.

Читайте также: