Поделиться через


Инструменты и расширения EF Core

Эти средства и расширения предоставляют дополнительные функциональные возможности для Entity Framework Core.

Внимание

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

Инструменты

EF Core Power Tools

EF Core Power Tools — это расширение Visual Studio, которое позволяет выполнять различные задачи разработки EF Core в простом пользовательском интерфейсе. Она включает обратное проектирование классов DbContext и сущностей из существующих баз данных и DACPACs SQL Server, а также визуализации и схемы моделей. Для EF Core: 8-10.

Вики-сайт GitHub

Утилита командной строки EF Core Power Tools

Инструмент командной строки EF Core Power Tools — это глобальное средство CLI для .NET. Он обеспечивает расширенное обратное проектирование классов DbContext и сущностей из существующих баз данных и DACPACs SQL Server. Для EF Core: 8-10.

NuGet

LLBLGen Pro

LLBLGen Pro — решение для моделирования сущностей с поддержкой Entity Framework и Entity Framework Core. Оно позволяет легко определить модель сущности и сопоставить ее с базой данных с помощью подходов Database-First (сначала база данных) или Model-First (сначала модель), таким образом, вы сможете сразу приступить к написанию запросов. Для EF Core: 2-9.

Веб-сайт

Devart Entity-разработчик

Entity Developer — мощный конструктор O/RM для ADO.NET Entity Framework, NHibernate, LinqConnect, Telerik Data Access и LINQ to SQL. Он поддерживает визуальное проектирование моделей EF Core с использованием подходов Model First и Database First и создание кода C# или Visual Basic. Для EF Core: 2-9.

Веб-сайт

DevMagic EF Core Sidekick

EF Core Sidekick — это расширение Visual Studio, которое улучшает возможности автоматического создания кода в Visual Studio. Он предоставляет набор средств и шаблонов для создания сущностей EF Core и производного DbContext из существующей базы данных, а затем создания служб и REST API из сущностей. Для EF Core: 6-9.

Веб-сайт Visual Studio Marketplace |

Визуальный редактор Entity Framework

Редактор Visual для Entity Framework — это расширение для Visual Studio, которое добавляет инструмент O/RM для визуального проектирования и работы с классами EF 6 и EF Core. Код создается с помощью шаблонов T4, поэтому его можно адаптировать к любым потребностям. Поддерживаются наследование, однонаправленные и двунаправленные ассоциации, перечисления и возможность цветового выделения классов и добавления текстовых блоков для объяснения потенциально сложных частей проекта. Для EF Core: 2-8.

Visual Studio Marketplace

efmig

efmig — это мультиплатформенное приложение графического интерфейса, которое ускоряет ежедневную разработку при работе с Entity Framework Core. В нем рассматриваются самые популярные варианты использования, такие как код миграции и создание скриптов с простым интерфейсом с одним щелчком мыши. Для EF Core: 2-8.

репозиторий GitHub

EFCore.Visualizer

Визуализатор плана запросов Entity Framework Core позволяет просматривать план запросов непосредственно внутри Visual Studio. В настоящее время визуализатор поддерживает SQL Server и PostgreSQL. Для EF Core: 7-8.

Visual Studio Marketplace

Расширения

EFCoreSecondLevelCacheInterceptor

Кэширование второго уровня — это кэширование запросов. Результаты команд EF будут храниться в кэше, чтобы такие же команды EF получали данные из кэша, а не выполнялись в базе данных еще раз. Для EF Core: 3-8.

Репозиторий GitHub | NuGet

EntityFrameworkCore.Scaffolding.Handlebars

Позволяет настраивать классы, реконструированные из существующей базы данных с помощью цепочки инструментов Entity Framework Core с шаблонами Handlebars. Для EF Core: 2-8.

Репозиторий GitHub | NuGet

NeinLinq.EntityFrameworkCore

NeinLinq расширяет возможности поставщиков LINQ, таких как Entity Framework, позволяя повторно использовать функции, переписывать запросы и создавать динамические запросы с использованием транслируемых предикатов и селекторов. Для EF Core: 3-8.

Репозиторий GitHub | NuGet

EFCore.BulkExtensions

Расширения EF Core для оптовых операций (Вставка, Обновление, Удаление). Для EF Core: 2-8.

Репозиторий GitHub | NuGet

Bricelam.EntityFrameworkCore.Pluralizer

Добавляет преобразование во множественную форму в процессе проектирования. Для EF Core: 2-9.

Репозиторий GitHub | NuGet

Verify.EntityFramework

Расширяет возможности Verify и позволяет выполнять в Entity Framework тестирование моментальных снимков. Для EF Core: 3-8.

Репозиторий GitHub | NuGet

LocalDB

Предоставляет оболочку для SQL Server Express LocalDB, позволяющую упростить выполнение тестов в Entity Framework.

Репозиторий GitHub | NuGet

EfCore.InMemory.Transactions

Простая поддержка транзакций для поставщика EF Core InMemory. Устраняет ошибки "транзакции с уровнем изоляции не поддерживаются" в тестах без изменения рабочего кода. Предоставляет безопасные методы расширения и NoOpDbContextTransaction для паттернов Unit of Work. Для EF Core: 8-10.

Репозиторий GitHub | NuGet

EntityFrameworkCore.Projectables

Гибкие возможности работы с проекциями для EF Core. Используйте в запросе свойства, методы и методы расширения без клиентской оценки. Для EF Core: 3-6, 8.

Репозиторий GitHub | NuGet

Entity Framework Plus

Расширяет DbContext с такими функциями, как Include Filter, аудит, кэширование, Query Future, пакетное удаление, пакетное обновление и т. д. Для EF Core: 2-10.

Веб-сайт | Репозиторий на GitHub | NuGet

Расширения Entity Framework

Расширяет DbContext с помощью высокопроизводительных массовых операций: BulkSaveChanges, BulkInsert, BulkUpdate, BulkDelete, BulkMerge и многое другое. Для EF Core: 2-10.

Веб-сайт | NuGet

Expressionify

Добавить поддержку вызова методов расширения в лямбда-выражениях LINQ. Для EF Core: 3-9.

Репозиторий GitHub | NuGet

EntityLinq

Альтернативная технология интегрированного языка запросов (LINQ), не основанная на Майкрософт, для реляционных баз данных. Позволяет писать строго типизированные SQL-запросы на C#. Для EF Core: 3-8.

  • Полная поддержка C# для создания запросов: лямбда-выражения с множеством инструкций, переменные, функции и т. д.
  • Отсутствие семантического разрыва с SQL. EntityLinq объявляет инструкции SQL (такие как SELECT, FROM, WHERE) как методы первого класса C#, сочетая привычный синтаксис с IntelliSense, безопасностью типов и рефакторингом.

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

Веб-сайт | NuGet

EFCore.NamingConventions

Автоматически преобразует имена всех таблиц и столбцов для использования "змеиного_регистра", ВСЕХ ПРОПИСНЫХ или всех строчных букв. Для EF Core: 3-9.

Репозиторий GitHub | NuGet

EFCore.CheckConstraints

Этот подключаемый модуль позволяет выбрать ряд проверочных ограничений. Просто активируйте его, и они будут созданы для вас автоматически. Для EF Core: 5-9.

Репозиторий GitHub | NuGet

SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime

Добавляет встроенную поддержку типов NodaTime в EntityFrameworkCore для SQL Server. Для EF Core: 3-9.

Репозиторий GitHub | NuGet

linq2db.EntityFrameworkCore

Альтернативный переводчик запросов LINQ к выражениям SQL. Для EF Core: 2-8.

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

Репозиторий GitHub | NuGet

EntityFrameworkCore.ConfigurationManager

Расширяет EF Core для извлечения строк подключения из App.config. Версии EF Core: 3-9.

Репозиторий GitHub | NuGet

Отдельный маппер

Средство мэппинга DTO-Entity с обработкой композиции/агрегирования (аналогично GraphDiff). Для EF Core: 3-8.

Репозиторий GitHub | NuGet

EntityFrameworkCore.Sqlite.NodaTime

Добавляет поддержку типов NodaTime при использовании SQLite. Для EF Core: 5-9.

Репозиторий GitHub | NuGet

ErikEJ.EntityFrameworkCore.SqlServer.Dacpac

Дает возможность обратного проектирования модели EF Core из пакета приложения уровня данных SQL Server (.dacpac). Для EF Core: 6-9.

Репозиторий GitHub | NuGet

ErikEJ.EntityFrameworkCore.DgmlBuilder

Создайте содержимое DGML (граф), которое визуализирует DbContext. Добавляет метод расширения AsDgml() в класс DbContext. Для EF Core: 6-9.

Репозиторий GitHub | NuGet

EntityFramework.Exceptions

В Entity Framework Core все исключения базы данных упаковываются в DbUpdateException. EntityFramework.Exceptions обрабатывает все сведения о базе данных, чтобы определить нарушенное ограничение, и позволяет применять типизированные исключения, например UniqueConstraintException, CannotInsertNullException, MaxLengthExceededException, NumericOverflowException, ReferenceConstraintException, если запрос нарушает ограничения базы данных.

Поддерживает SQL Server, Postgres, MySQL, SQLite и Oracle. Для EF Core: 3-8.

Репозиторий GitHub

EntityFrameworkCore.VisualBasic

Добавляет поддержку VB во время проектирования в EF Core. Для EF Core: 5-8.

Репозиторий GitHub | NuGet

Laraue.EfCoreTriggers

Гибкий API для объявления триггеров в Context.OnModelCreating, которые впоследствии интегрируются в миграции. Поставщики для Postgres, MySQL, SQL Server и SQLite. Для EF Core: 5-8.

Репозиторий GitHub | NuGet

EntityCloner.Microsoft.EntityFrameworkCore

Клонирование сущностей с помощью конфигурации EF Core. Можно использовать метод Include, чтобы указать необходимые данные для клонирования. Для EF Core: 5-8.

Репозиторий GitHub | NuGet

Расширения Zomp для EF Core

Предоставляет оконные (аналитические) функции и двоичные функции для EF Core. Поставщики: SQL Server, SQLite, PostgreSQL. Для EF Core: 6-8.

Репозиторий GitHub | NuGet

Линейка Entity Framework

Добавляет настройку во время разработки реверсивной модели, включая:

  • Именование классов, свойств и навигации
  • Пропуск структуры любой схемы, таблицы или столбца.
  • Переопределение типов свойств, особенно для перечислений.
  • Поддержка EF6 EDMX, обеспечивающая плавный процесс обновления в 3 шага от EF6 до EF Core.

Для EF Core: 6-8.

Репозиторий GitHub | CLI инструмент NuGet | Дизайн NuGet

Microsoft.EntityFrameworkCore.DynamicLinq

Библиотека Dynamic LINQ позволяет выполнять запрос с динамической строкой и предоставлять некоторые служебные методы, такие как ParseLambda, Parse и CreateClass. Для EF Core: 2-10.

Веб-сайт | Репозиторий на GitHub | NuGet

EfCoreNexus.Framework

EfCoreNexus помогает интегрировать платформу Entity Framework Core в приложения на Blazor. С использованием рефлексии он автоматически добавляет классы сущностей и предоставляет базовые функции CRUD для них без написания дополнительного кода. Для EF Core: 8.

Репозиторий GitHub | NuGet

Посредник

Обновление графа сущности в хранилище на заданный объект путем вставки, обновления и удаления соответствующих сущностей. Для EF Core: 6-7.

репозиторий GitHub

Автовычисление

Сохраненные вычисляемые свойства в EF Core, которые обновляются автоматически при сохранении изменений. Для EF Core: 8.

Репозиторий GitHub | NuGet

EntityFramework.OrderBy

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

Репозиторий GitHub | NuGet

EntityFrameworkCore.AuditInterceptor

Библиотека, предоставляющая удобные возможности аудита для Entity Framework Core. Он автоматически отслеживает изменения сущностей, включая тех, кто внес изменения и когда они были сделаны. Библиотека интегрируется с Dependency Injection в .NET и поддерживает различные сценарии аудита благодаря простому процессу настройки. Для EF Core: 6-8.

Репозиторий GitHub | NuGet

PhenX.EntityFrameworkCore.BulkInsert

Высокопроизводительное расширение для массовой вставки в Entity Framework Core. Поддерживает SQL Server, PostgreSQL, SQLite, MySQL и Oracle. Для EF Core: 8-9.

Сайт | Репозиторий GitHub

SanderTenBrinke.EntityFrameworkCore.Extensions.SqlServer.DataMasking

Этот пакет фокусируется на добавлении поддержки маскирования данных для SQL Server в EF Core. Для EF Core: 8-9.

Репозиторий GitHub | NuGet

EFCommenter

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

Репозиторий GitHub | NuGet

Интеграции API

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

Aspire

Повышайте эффективность локальной разработки, упрощая управление конфигурацией и связями облачно-ориентированного приложения. Для EF Core: 8-10.

Веб-сайт | Репозиторий на GitHub | NuGet

HotChocolate

Создайте конечную точку GraphQL на основе любого ресурса.

Репозиторий GitHub | NuGet

GraphQL.EntityFramework

Добавьте поддержку IQueryable Entity Framework в GraphQL. Для EF Core: 6-8.

Репозиторий GitHub | NuGet

EntityGraphQL

Сервер GraphQL с жесткой интеграцией EntityFramework. Для EF Core: 5-8.

Репозиторий GitHub | NuGet

OData

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

Репозиторий GitHub | NuGet

Расширения для неподдерживаемых версий EF Core

EntityFrameworkCore.SqlServer.HierarchyId

Примечание.

Тип данных hierarchyid SQL Server напрямую поддерживается в EF Core начиная с EF Core 8.

Добавляет поддержку hierarchyid для поставщика SQL Server EF Core. Для EF Core: 3-7.

Репозиторий GitHub | NuGet

EntityFrameworkCore.FSharp

Добавляет поддержку времени разработки F# в EF Core. Для EF Core: 5-6.

Репозиторий GitHub | NuGet

EntityFrameworkCore.Triggered

Триггеры для EF Core. Реагирование на изменения в DbContext до и после фиксации этих изменений в базе данных. Триггеры полностью асинхронны и поддерживают внедрение зависимостей, наследование, каскадирование и другие возможности. Для EF Core: 3-6.

Репозиторий GitHub | NuGet

Microsoft.EntityFrameworkCore.AutoHistory

Библиотека подключаемых модулей, которая позволяет автоматически записывать изменения данных, выполняемые EF Core, в таблицу истории. Для EF Core: 2-6.

Репозиторий GitHub | NuGet

ErikEJ.EntityFrameworkCore.SqlServer.SqlQuery

Примечание.

Необработанные SQL-запросы для несопоставленных типов поддерживаются прямо в EF Core начиная с EF Core 8.

Предоставляет методы SqlQueryAsync<T> и SqlQueryValueAsync<T>, которые помогают указать произвольные классы или список примитивных типов на основе необработанного SQL-запроса. Для EF Core: 6-7.

Репозиторий GitHub | NuGet

ErikEJ.EntityFrameworkCore.SqlServer.DateOnlyTimeOnly

Примечание.

SQL Server DateOnly и TimeOnly сопоставление поддерживаются непосредственно в EF Core с EF Core 8.

Используйте типы .NET DateOnly и TimeOnly с поставщиком EF Core SQL Server. Для EF Core: 6-7.

Репозиторий GitHub | NuGet

nHydrate ORM для Entity Framework

O/RM создает строго типизированные расширяемые классы для Entity Framework. Созданный код представляет собой Entity Framework Core. Различий при этом нет. Это не замена EF или пользовательского O/RM. Это визуальный слой моделирования, который позволяет команде управлять сложными схемами баз данных. Он поддерживает программное обеспечение SCM, например Git, обеспечивая доступ многих пользователей к модели с минимальными конфликтами. Установщик отслеживает изменения модели и создает скрипты обновления. Для EF Core: 3.

Репозиторий GitHub

Microsoft.EntityFrameworkCore.UnitOfWork

Подключаемый модуль для Microsoft.EntityFrameworkCore, поддерживающий паттерн репозитория, шаблоны Unit of Work и работу с несколькими базами данных, включая поддержку распределенных транзакций. Для EF Core: 2-3.

репозиторий GitHub

Toolbelt.EntityFrameworkCore.IndexAttribute

Новая реализация атрибута [Index] (с расширением для создания моделей). Для EF Core: 2-5.

Репозиторий GitHub | NuGet

EfCoreTemporalTable

Примечание.

Темпоральные таблицы SQL Server поддерживаются непосредственно в EF Core начиная с версии EF Core 6.

Простое выполнение темпоральных запросов к избранной базе данных с помощью представленных методов расширения: AsTemporalAll(), AsTemporalAsOf(date), AsTemporalFrom(startDate, endDate), AsTemporalBetween(startDate, endDate), AsTemporalContained(startDate, endDate). Для EF Core: 3-5.

Репозиторий GitHub | NuGet

EntityFrameworkCore.TemporalTables

Примечание.

Темпоральные таблицы SQL Server поддерживаются непосредственно в EF Core начиная с версии EF Core 6.

Библиотека расширений для Entity Framework Core, которая позволяет разработчикам, работающим с SQL Server, легко использовать темпоральные таблицы. Для EF Core: 2-5.

Репозиторий GitHub | NuGet

Dabble.EntityFrameworkCore.Temporal.Query

Примечание.

Темпоральные таблицы SQL Server поддерживаются непосредственно в EF Core начиная с версии EF Core 6.

Расширения LINQ для Entity Framework Core 3.1, поддерживающие запросы к временным таблицам Microsoft SQL Server. Для EF Core: 3.

Репозиторий GitHub | NuGet

EntityFrameworkCore.NCache

Поставщик Entity Framework Core NCache является распределенным поставщиком кэша второго уровня для кэширования результатов запросов. Распределенная архитектура NCache повышает уровень его масштабируемости и высокой доступности. Для EF Core: 2-3.

Веб-сайт | NuGet

Ramses

Жизненные циклы хуков (для SaveChanges). Для EF Core: 2-3.

Репозиторий GitHub | NuGet

EntityFrameworkCore.Extensions

Библиотека для динамического маскирования данных (SQL Server) и расширений MigrationBuilder и ModelBuilder. Для EF Core: 5.

Обновленное ответвление для функции маскирования данных можно найти в EntityFrameworkCore.Extensions.SqlServer.DataMasking

Репозиторий GitHub | NuGet

EFCore.SoftDelete

Реализация для мягкого удаления сущностей. Для EF Core: 3-6.

Репозиторий GitHub | NuGet

Ainoraz.EFCore.IncludeBuilder

Расширение для EF Core, которое предоставляет альтернативный синтаксис Include для лучшей поддержки следующих сценариев:

  • загрузка нескольких сущностей на одном уровне (сиблинги)
  • написание методов расширения, которые не зависят от уровня вложения.

Для EF Core: 6-7.

LessCode.EFCore.StronglyTypedId

Генератор исходного кода, который может автоматически создавать классы строго типизированных идентификаторов для сущностей. Для EF Core: 7.

репозиторий GitHub