Entity Framework Core (EF Core) — это современный модуль сопоставления "объект — база данных" для .NET. Он поддерживает запросы LINQ, отслеживание изменений, обновления и миграции схемы.
Entity Framework 6 (EF6) — это объектно-реляционный модуль сопоставления, предназначенный для .NET Framework, но с поддержкой для .NET Core. EF6 — это стабильный, поддерживаемый продукт, который больше не разрабатывается.
Сравнение возможностей
EF Core предлагает новые функции, которые не будут реализованы в EF6. Однако в настоящее время в EF Core реализованы не все функции EF6.
В следующей таблице представлено сравнение возможностей, доступных в EF Core и EF6. Это общее сравнение, здесь не указаны все функции и не объясняются различия между одной и той же возможностью в разных версиях EF.
Столбец EF Core содержит версию продукта, в которой эта возможность появилась впервые.
Создание модели
Компонент
EF6.4
EF Core
Сопоставление базовых классов
Да
1.0
Конструкторы с параметрами
2.1
Преобразования значений свойств
2.1
Сопоставленные типы без ключей (типы запросов)
2.1
Соглашения
Да
1.0
Соглашения об именовании
Да
7.0
Аннотирование данных
Да
1.0
Текучий API
Да
1.0
Наследование: одна таблица на иерархию (TPH)
Да
1.0
Наследование: одна таблица на тип (TPT)
Да
5,0
Наследование: одна таблица на конкретный класс (TPC)
Да
7.0
Теневые свойства состояния
1.0
Альтернативные ключи
1.0
Навигация "многие ко многим"
Да
5,0
Многие ко многим без сущности соединения
Да
5,0
Создание ключей в базе данных
Да
1.0
Создание ключей на стороне клиента
1.0
Сложные и принадлежащие типы
Да
2.0
Пространственные данные
Да
2,2
Формат модели: код
Да
1.0
Создание модели из базы данных с помощью командной строки
1 Некоторые функции EF6 не будут реализованы в EF Core. Эти функции зависят от базовых EDM EF6 и (или) являются сложными функциями с относительно низкой рентабельностью инвестиций. Мы всегда приветствуем обратную связь, но несмотря на то, что EF Core предоставляет многие функции, недоступные в EF6, для EF Core, наоборот, невозможно поддерживать все функции EF6.
2 Поставщики баз данных, реализованные сторонними производителями, могут запаздывать с обновлением до новых основных версий EF Core. Дополнительные сведения можно найти в статье Поставщики баз данных.
3 Поставщики SQL Server Compact и Jet работают только в .NET Framework (но не в .NET Core).
Поддерживаемые платформы
EF Core 3.1 работает на .NET Core и .NET Framework с помощью .NET Standard 2.0. Однако EF Core 5.0 не работает в .NET Framework. Дополнительные сведения см. в разделе Реализации .NET, поддерживаемые EF Core.
EF6.4 выполняется в .NET Core и .NET Framework с помощью многоплатформенного нацеливания.
EF Core не является заменой для EF6. Для перехода с EF6 на EF Core, скорее всего, потребуется внести изменения в приложение.
При перемещении приложения EF6 в .NET Core.
Продолжайте использовать EF6, если код доступа к данным стабилен и вряд ли будет развиваться или нуждаться в новых функциях.
Выполняйте перенос в EF Core, если код доступа к данным развивается или приложению нужны новые функции, доступные только в EF Core.
Перенос в EF Core также часто выполняется для повышения производительности. Однако не все сценарии работают быстрее, поэтому сначала сделайте профилирование.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
В этом модуле описаны шаги по созданию проекта доступа к данным. Вы подключаетесь к реляционной базе данных и создаете запросы на создание, чтение, обновление и удаление (CRUD) с помощью Entity Framework Core (EF Core).