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

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

Внимание

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

Инструменты

EF Core Power Tools

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

Вики-сайт GitHub

ИНТЕРФЕЙС командной строки EF Core Power Tools

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

Файл сведений GitHub

LLBLGen Pro

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

Веб-сайт

Devart Entity Developer

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-7.

Веб-сайт

DevMagic EF Core Sidekick

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

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

Редактор Visual Entity Framework

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

Visual Studio Marketplace

IWAPI

IWAPI (Instant Web API) — это подсистема формирования шаблонов для .NET Core, автоматизирующая создание классов DbContext, сущностей и моделей и позволяющая создать функциональный веб-API из любой базы данных SQL Server.

Веб-сайт

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

Модули

Microsoft.EntityFrameworkCore.AutoHistory

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

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

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: 2-7.

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

EFCore.BulkExtensions

Расширения EF Core для массовых операций (Insert, Update, Delete). Для EF Core: 2-8.

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

Bricelam.EntityFrameworkCore.Pluralizer

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

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

Verify.EntityFramework

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

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

LocalDB

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

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

EntityFrameworkCore.Projectables

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

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

EntityFrameworkCore.Triggered

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

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

Entity Framework Plus

Расширяет dbContext с такими функциями, как включение фильтра, аудита, кэширования, запроса будущего, пакетного удаления, пакетного обновления и т. д. Для EF Core: 2-8.

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

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

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

Веб-сайт | NuGet

Expressionify

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

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

EntityLinq

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

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

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

Веб-сайт | NuGet

EFCore.NamingConventions

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

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

EFCore.CheckConstraints

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

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

SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime

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

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

EntityFrameworkCore.SqlServer.HierarchyId

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

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

linq2db.EntityFrameworkCore

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

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

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

EFCore.SoftDelete

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

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

EntityFrameworkCore.ConfigurationManager

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

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

Detached Mapper

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

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

EntityFrameworkCore.Sqlite.NodaTime

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

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

ErikEJ.EntityFrameworkCore.SqlServer.Dacpac

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

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

ErikEJ.EntityFrameworkCore.DgmlBuilder

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

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

ErikEJ.EntityFrameworkCore.SqlServer.SqlQuery

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

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

ErikEJ.EntityFrameworkCore.SqlServer.DateOnlyTimeOnlyOnly

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

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

EntityFramework.Exceptions

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

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

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

EntityFrameworkCore.FSharp

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

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

EntityFrameworkCore.VisualBasic

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

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

Krzysztofz01.EFCore.QueryFilterBuilder

Расширение для Entity Framework, позволяющее создавать и использовать множество фильтров запросов. Для EF Core: 5-7.

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

Pagination.EntityFrameworkCore.Extensions

Это библиотека для разбиения на страницы в Entity Framework Core. Совместима с Entity Framework Core в качестве расширения и поддерживает как асинхронные, так и синхронные операции. В ней также содержится множество полезных функций, особенно популярных в веб-разработке. Для EF Core: 2-7.

Репозиторий 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-7.

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

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

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

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

Ainoraz.EFCore.IncludeBuilder

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

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

Для EF Core: 6-7.

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

Линейка Entity Framework

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

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

Для EF Core: 6-8.

Репозиторий репозитория | GitHub Cli Tool NuGet Design NuGet |

LessCode.EFCore.StronglyTypedId

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

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

Microsoft.EntityFrameworkCore.DynamicLinq

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

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

EfCoreNexus.Framework

EfCoreNexus помогает интегрировать ядро платформы сущностей в приложения blazor. Благодаря отражению он добавляет классы entitiy автоматически и предоставляет базовые функции crud для них без написания дополнительного кода.

Для EF Core: 8.

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

Интеграции API

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

HotChocolate

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

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

GraphQL.EntityFramework

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

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

EntityGraphQL

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

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

OData

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

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

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

Использование 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