Перейти к содержимому

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

  • автор:

Установка Entity Framework Core

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

Установить или обновить пакеты NuGet можно в интерфейсе командной строки (CLI) .NET Core, а также в диалоговом окне или консоли диспетчера пакетов Visual Studio.

Интерфейс командной строки .NET Core

  • Чтобы установить или обновить поставщик EF Core SQL Server, выполните следующую команду интерфейса командной строки .NET Core в командной строке операционной системы:
dotnet add package Microsoft.EntityFrameworkCore.SqlServer 

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

  • В меню Visual Studio выберите «Проект» > «Управление пакетами NuGet»
  • Нажмите кнопку Обзор или откройте вкладку Обновления.
  • Чтобы установить или обновить поставщик SQL Server, выберите пакет Microsoft.EntityFrameworkCore.SqlServer и подтвердите свой выбор.

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

  • В меню Visual Studio выберите «Сервис» > «Диспетчер пакетов NuGet» > «Консоль диспетчера пакетов»
  • Чтобы установить поставщик SQL Server, в консоли диспетчера пакетов выполните следующую команду:
Install-Package Microsoft.EntityFrameworkCore.SqlServer 

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

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

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

  • Инструменты интерфейса командной строки (CLI) .NET Core можно использовать в Windows, Linux и macOS. Эти команды начинаются с dotnet ef .
  • Инструменты консоли диспетчера пакетов работают в Visual Studio в Windows. Эти команды начинаются с глагола, например Add-Migration , Update-Database .

Получение инструментов CLI для .NET Core

Для инструментов CLI .NET Core требуется пакет SDK для .NET Core, указанный ранее в разделе Необходимые компоненты.

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

dotnet tool install --global dotnet-ef 
dotnet add package Microsoft.EntityFrameworkCore.Design 

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

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

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

Install-Package Microsoft.EntityFrameworkCore.Tools 

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

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

Начало работы с EF Core

В этом руководстве вы создадите консольное приложение .NET Core, которое осуществляет доступ к базе данных SQLite с помощью Entity Framework Core.

Руководство можно выполнить с помощью Visual Studio в Windows или с помощью .NET CLI в Windows, macOS или Linux.

Необходимые компоненты

Установите следующее программное обеспечение:

  • Интерфейс командной строки.NET
  • Visual Studio
  • Пакет SDK для .NET.
  • Visual Studio 2022 версии 17.4 или более поздней с этой рабочей нагрузкой:
    • Разработка классических приложений .NET (в разделе «Классические и мобильные устройства»)

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

    • Интерфейс командной строки.NET
    • Visual Studio
    dotnet new console -o EFGetStarted cd EFGetStarted 
    • Запустите Visual Studio
    • Нажмите кнопку » Создать проект»
    • Выберите консольное приложение с тегом C# и нажмите кнопку «Далее»
    • Задайте проекту имя EFGetStarted и щелкните Создать.

    Установка Entity Framework Core

    Чтобы установить EF Core, установите пакеты целевых поставщиков базы данных EF Core, с которыми вы будете работать. В этом руководстве используется SQLite, так как он выполняется на всех платформах, поддерживаемых .NET. Список доступных поставщиков см. в разделе Database Providers (Поставщики базы данных).

    • Интерфейс командной строки .NET Core
    • Visual Studio
    dotnet add package Microsoft.EntityFrameworkCore.Sqlite 
    • «Сервис» > «Диспетчер пакетов NuGet» > «Консоль диспетчера пакетов».
    • Выполните следующие команды:
    Install-Package Microsoft.EntityFrameworkCore.Sqlite 

    Совет. Вы также можете установить пакеты, щелкнув проект правой кнопкой мыши и выбрав » Управление пакетами NuGet»

    Создание модели

    Задайте класс контекста и классы сущностей, составляющие модель.

    • Интерфейс командной строки.NET
    • Visual Studio
    • В каталоге проекта создайте файл Model.cs с таким кодом:
    • Щелкните проект правой кнопкой мыши и выберите Добавить > Класс
    • Задайте имя Model.cs и щелкните Добавить.
    • Замените все содержимое этого файла следующим кодом:
    using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; public class BloggingContext : DbContext < public DbSetBlogs < get; set; >public DbSet Posts < get; set; >public string DbPath < get; >public BloggingContext() < var folder = Environment.SpecialFolder.LocalApplicationData; var path = Environment.GetFolderPath(folder); DbPath = System.IO.Path.Join(path, "blogging.db"); >// The following configures EF to create a Sqlite database file in the // special "local" folder for your platform. protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseSqlite($"Data Source="); > public class Blog < public int BlogId < get; set; >public string Url < get; set; >public List Posts < get; >= new(); > public class Post < public int PostId < get; set; >public string Title < get; set; >public string Content < get; set; >public int BlogId < get; set; >public Blog Blog < get; set; >> 

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

    Совет. Это приложение намеренно держит вещи простыми для ясности. В приложениях для рабочей среды не следует хранить строки подключений в коде. Возможно, также будет лучше поместить каждый класс C# в отдельный файл.

    Создание базы данных

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

    • Интерфейс командной строки.NET
    • Visual Studio
    dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef migrations add InitialCreate dotnet ef database update 
    Install-Package Microsoft.EntityFrameworkCore.Tools Add-Migration InitialCreate Update-Database 

    Создание, чтение, обновление и удаление

    • Откройте файл Program.cs и замените его содержимое следующим кодом:
    using System; using System.Linq; using var db = new BloggingContext(); // Note: This sample requires the database to be created before running. Console.WriteLine($"Database path: ."); // Create Console.WriteLine("Inserting a new blog"); db.Add(new Blog < Url = "http://blogs.msdn.com/adonet" >); db.SaveChanges(); // Read Console.WriteLine("Querying for a blog"); var blog = db.Blogs .OrderBy(b => b.BlogId) .First(); // Update Console.WriteLine("Updating the blog and adding a post"); blog.Url = "https://devblogs.microsoft.com/dotnet"; blog.Posts.Add( new Post < Title = "Hello World", Content = "I wrote an app using EF Core!" >); db.SaveChanges(); // Delete Console.WriteLine("Delete the blog"); db.Remove(blog); db.SaveChanges(); 

    Выполнить приложение

    • Интерфейс командной строки.NET
    • Visual Studio
    dotnet run 

    «Отладка» > «Запустить без отладки»

    Следующие шаги

    • Следуйте инструкциям из руководства по ASP.NET Core, чтобы использовать EF Core в веб-приложении.
    • См. сведения о выражениях запросов LINQ.
    • Настройте модель, указав требуемую и максимальную длину.
    • Используйте миграции для обновления схемы базы данных после изменения модели.

    Инструменты Entity Framework в Visual Studio

    Entity Framework — это технология сопоставления реляционных объектов, которая позволяет разработчикам .NET работать с реляционными данными с помощью объектов, относящихся к домену. Это исключает необходимость в большинстве кодов доступа к данным, которые обычно требуется писать разработчикам. Entity Framework — это рекомендуемая технология моделирования реляционного сопоставления объектов (ORM) для новых приложений .NET.

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

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

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

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

    Это конкретные инструменты, составляющие инструменты Entity Framework в Visual Studio:

    • Конструктор моделей данных сущностей (конструктор сущностей) можно использовать ADO.NET для визуального создания и изменения сущностей, связей, сопоставлений и связей наследования. Конструктор сущностей также создает код уровня объектов C# или Visual Basic.
    • Мастер модели данных сущности можно использовать для создания концептуальной модели из существующей базы данных и добавления сведений о подключении к базе данных в приложение.
    • Чтобы сначала создать концептуальную модель, можно использовать мастер создания базы данных, а затем создать базу данных, которая поддерживает модель.
    • Мастер обновления модели можно использовать для обновления концептуальной модели, модели хранилища и сопоставлений при внесении изменений в базовую базу данных.

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

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

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

    См. также

    Заголовок Description
    ADO.NET Entity Framework В этой статье описывается, как использовать инструменты модели сущностей, которые предоставляет Entity Framework для создания приложений.
    Сущностная модель данных Предоставляет ссылки и сведения для работы с данными, которые используются приложениями, созданными на платформе Entity Framework.
    Документация по Entity Framework (EF) Предоставляет индекс видео, учебников и расширенной документации, помогая вам сделать большую часть Entity Framework.

    Связанный контент

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

    Данное руководство устарело. Актуальное руководство: Руководство по Entity Framework Core 7

    Последнее обновление: 14.11.2020

    Платформу Entity Framework Core можно применять в различных технологиях стека .NET. В данном случае мы будем рассматривать базовые моменты платформы на примере консольных приложений, как наиболее простых и не содержащих никакого лишнего кода. Но в последствии также затронем применение EF Core и в других технологиях на конкретных примерах.

    Итак, создадим первое приложение с использованием Entity Framework Core. Для этого создадим в Visual Studio 2019 новый проект по типу Console App (.NET Core) , который назовем HelloApp:

    Первое приложение на Entity Framework Core Создание первого приложения на Entity Framework Core 5

    Итак, Visual Studio создает проект с базовой примитивной структурой, где можно выделить собственно файл логики приложения — файл Program.cs . И чтобы начать работать с EntityFramework Core, нам необходимо вначале добавить в проект пакет EntityFramework Core. Для этого перейдем в проекте к пакетному менеджеру NuGet.

    Однако здесь мы ищем не общий пакет для Entity Framework Core, а пакет для конкретной СУБД. Так, в данном случае мы будем использовать MS SQL Server в качестве СУБД, поэтому нам надо искать пакет Microsoft.EntityFrameworkCore.SqlServer :

    Microsoft.EntityFrameworkCore.SqlServer и начало работы с EntityFramework Core 5

    В качестве альтернативы для добавления пакетов можно использовать Package Manager Console . Для этого в меню Visual Studio перейдем к пункту Tools -> NuGet Package Manager -> Package Manager Console

    В открывшемся внизу в Visual Studio окне Package Manager Console введем команду:

    Install-Package Microsoft.EntityFrameworkCore.SqlServer

    После выполнения этой команды выполним вторую команду:

    Install-Package Microsoft.EntityFrameworkCore.Tools

    Итак, необходимые пакеты добавлены. Теперь мы можем их использовать.

    Далее нам надо определить модель, которая будет описывать данные. Пусть наше приложение будет посвящено работе с пользователями. Поэтому добавим в проект новый класс User:

    public class User < public int Id < get; set; >public string Name < get; set; >public int Age < get; set; >>

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

    Надо отметить, что Entity Framework требует определения ключа элемента для создания первичного ключа в таблице в бд. По умолчанию при генерации бд EF в качестве первичных ключей будет рассматривать свойства с именами Id или [Имя_класса]Id (то есть UserId).

    Взаимодействие с базой данных в Entity Framework Core происходит посредством специального класса — контекста данных. Поэтому добавим в наш проект новый класс, который назовем ApplicationContext и который будет иметь следующий код:

    using Microsoft.EntityFrameworkCore; namespace HelloApp < public class ApplicationContext : DbContext < public DbSetUsers < get; set; >public ApplicationContext() < Database.EnsureCreated(); >protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) < optionsBuilder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=helloappdb;Trusted_Connection=True;"); >> >

    Основу функциональности Entity Framework Core для работы с MS SQL Server составляют классы, которые располагаются в пространстве имен Microsoft.EntityFrameworkCore . Среди всего набора классов этого пространства имен следует выделить следующие:

    • DbContext : определяет контекст данных, используемый для взаимодействия с базой данных
    • DbSet/DbSet : представляет набор объектов, которые хранятся в базе данных
    • DbContextOptionsBuilder : устанавливает параметры подключения

    В любом приложении, работающим с БД через Entity Framework, нам нужен будет контекст (класс производный от DbContext). В данном случае таким контекстом является класс ApplicationContext.

    И также в классе определено одно свойство Users, которое будет хранить набор объектов User. В классе контекста данных набор объектов представляет класс DbSet . Через это свойство будет осуществляться связь с таблицей объектов User в бд.

    Кроме того, для настройки подключения нам надо переопределить метод OnConfiguring . Передаваемый в него параметр класса DbContextOptionsBuilder с помощью метода UseSqlServer позволяет настроить строку подключения для соединения с MS SQL Server. В данном случае мы определяем, что в качестве сервера будет использоваться движок localdb, который предназначен специально для разработки, ( «Server=(localdb)\\mssqllocaldb» ), а файл базы данных будет называться helloappdb ( «Database=helloappdb» ).

    И также стоит отметить, что по умолчанию у нас нет базы данных. Поэтому в конструкторе класса контекста определен вызов метода Database.EnsureCreated() , который при создании контекста автоматически проверит наличие базы данных и, если она отсуствует, создаст ее.

    Теперь определим сам код программы, который будет взаимодействовать с созданной БД. Для этого изменим класс Program следующим образом:

    using System; using System.Linq; namespace HelloApp < public class Program < public static void Main(string[] args) < using (ApplicationContext db = new ApplicationContext()) < // создаем два объекта User User user1 = new User < Name = "Tom", Age = 33 >; User user2 = new User < Name = "Alice", Age = 26 >; // добавляем их в бд db.Users.Add(user1); db.Users.Add(user2); db.SaveChanges(); Console.WriteLine("Объекты успешно сохранены"); // получаем объекты из бд и выводим на консоль var users = db.Users.ToList(); Console.WriteLine("Список объектов:"); foreach (User u in users) < Console.WriteLine($". - "); > > Console.Read(); > > >

    Так как класс ApplicationContext через базовый класс DbContext реализует интерфейс IDisposable , то для работы с ApplicationContext с автоматическим закрытием данного объекта мы можем использовать конструкцию using .

    В конструкции using создаются два объекта User и добавляются в базу данных. Для их сохранения нам достаточно использовать метод Add : db.Users.Add(user1)

    Чтобы получить список данных из бд, достаточно воспользоваться свойством Users контекста данных: db.Users

    В результате после запуска программа выведет на консоль:

    Объекты успешно сохранены Список объектов: 1.Tom - 33 2.Alice - 26

    И после добавления мы можем найти базу данных в окне SQL Server Object Explorer (открыть данное окно можно через меню View->SQL Server Object Explorer ). Там мы можем раскрыть и посмотреть содержимое ее таблиц:

    Создание базы данных в EF Core

    Таким образом, Entity Framework Core обеспечивает простое и удобное управление объектами из базы данных. При том в данном случае нам не надо даже создавать базу данных и определять в ней таблицы. Entity Framework все сделает за нас на основе определения класса контекста данных и классов моделей. И если база данных уже имеется, то EF не будет повторно создавать ее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *