Инструменты и расширения 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.
ИНТЕРФЕЙС командной строки EF Core Power Tools
ИНТЕРФЕЙС командной строки EF Core Power Tools — это глобальное средство командной строки .NET. Он обеспечивает расширенное обратное проектирование классов DbContext и сущностей из существующих баз данных и DACPACs SQL Server. Для EF Core: 6-8.
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-8.
Веб-сайт Visual Studio Marketplace |
Редактор Visual Entity Framework
Редактор Visual Entity Framework — это расширение Visual Studio, которое добавляет конструктор O/RM для визуального проектирования классов EF 6 и EF Core. Код создается с помощью шаблонов T4, поэтому его можно адаптировать к любым потребностям. Поддерживаются наследование, однонаправленные и двунаправленные ассоциации, перечисления и возможность цветового выделения классов и добавления текстовых блоков для объяснения потенциально сложных частей проекта. Для EF Core: 2-8.
IWAPI
IWAPI (Instant Web API) — это подсистема формирования шаблонов для .NET Core, автоматизирующая создание классов DbContext, сущностей и моделей и позволяющая создать функциональный веб-API из любой базы данных SQL Server.
efmig
efmig — это мультиплатформенное приложение графического интерфейса, которое ускоряет ежедневную разработку при работе с Entity Framework Core. В нем рассматриваются самые популярные варианты использования, такие как код миграции и создание скриптов с простым интерфейсом с одним щелчком мыши. Для EF Core: 2-8.
EFCore.Visualizer
Визуализатор плана запросов Entity Framework Core позволяет просматривать план запросов непосредственно внутри Visual Studio. В настоящее время визуализатор поддерживает SQL Server и PostgreSQL. Для EF Core: 7-8.
Расширения
Microsoft.EntityFrameworkCore.AutoHistory
Библиотека подключаемых модулей, которая позволяет автоматически записывать изменения данных, выполняемые EF Core, в таблицу журнала. Для EF Core: 2-6.
EFCoreSecondLevelCacheInterceptor
Кэширование второго уровня — это кэширование запросов. Результаты команд EF будут храниться в кэше, чтобы такие же команды EF получали данные из кэша, а не выполнялись в базе данных еще раз. Для EF Core: 3-8.
EntityFrameworkCore.Scaffolding.Handlebars
Позволяет настраивать классы, реконструированные из существующей базы данных с помощью цепочки инструментов Entity Framework Core с шаблонами Handlebars. Для EF Core: 2-8.
NeinLinq.EntityFrameworkCore
NeinLinq расширяет возможности поставщиков LINQ, таких как Entity Framework, позволяя повторно использовать функции, переписывать запросы и создавать динамические запросы с использованием транслируемых предикатов и селекторов. Для EF Core: 3-8.
EFCore.BulkExtensions
Расширения EF Core для массовых операций (Insert, Update, Delete). Для EF Core: 2-8.
Bricelam.EntityFrameworkCore.Pluralizer
Добавляет преобразование во множественную форму для времени разработки. Для EF Core: 2-9.
Verify.EntityFramework
Расширяет возможности Verify и позволяет выполнять в Entity Framework тестирование моментальных снимков. Для EF Core: 3-8.
LocalDB
Предоставляет оболочку для SQL Server Express LocalDB, позволяющую упростить выполнение тестов в Entity Framework. Для EF Core: 3-8.
EntityFrameworkCore.Projectables
Гибкие возможности работы с проекциями для EF Core. Используйте в запросе свойства и методы, а также методы расширения без оценки на клиенте. Для EF Core: 3-6, 8.
EntityFrameworkCore.Triggered
Триггеры для EF Core. Реагирование на изменения в DbContext до и после фиксации этих изменений в базе данных. Триггеры полностью асинхронны и поддерживают внедрение зависимостей, наследование, каскадирование и другие возможности. Для EF Core: 3-6.
Entity Framework Plus
Расширяет dbContext с такими функциями, как включение фильтра, аудита, кэширования, запроса будущего, пакетного удаления, пакетного обновления и т. д. Для EF Core: 2-8.
Репозиторий | NuGet веб-сайта | GitHub
Расширения Entity Framework
Расширяет dbContext с помощью высокопроизводительных массовых операций: BulkSaveChanges, BulkInsert, BulkUpdate, BulkDelete, BulkDelete, BulkMerge и многое другое. Для EF Core: 2-8.
Expressionify
Добавляет поддержку вызова методов расширения в лямбда-выражениях LINQ. Для EF Core: 3-6.
EntityLinq
Альтернативная технология LINQ (не на основе Майкрософт) для реляционных баз данных. Позволяет писать строго типизированные SQL-запросы на C#. Для EF Core: 3-8.
- Полная поддержка C# для создания запросов: лямбда-выражения с множеством инструкций, переменные, функции и т. д.
- Отсутствие семантического разрыва с SQL. EntityLinq объявляет инструкции SQL (такие как
SELECT
,FROM
,WHERE
) как методы первого класса C#, сочетая привычный синтаксис с IntelliSense, безопасностью типов и рефакторингом.
В результате SQL становится просто еще одной библиотекой классов, предоставляющей свой API локально, буквально являясь "языком интегрированного SQL".
EFCore.NamingConventions
Автоматически преобразует имена всех таблиц и столбцов для использования "змеиного_регистра", ВСЕХ ПРОПИСНЫХ или всех строчных букв. Для EF Core: 3-8.
EFCore.CheckConstraints
Этот подключаемый модуль позволяет выбрать ряд проверочных ограничений. Просто активируйте его, и они будут созданы для вас автоматически. Для EF Core: 5-8.
SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime
Добавляет встроенную поддержку типов NodaTime в EntityFrameworkCore для SQL Server. Для EF Core: 3-8.
EntityFrameworkCore.SqlServer.HierarchyId
Примечание.
Тип данных иерархии SQL Server поддерживается непосредственно в EF Core с EF Core 8.
Добавляет поддержку hierarchyid в поставщик SQL Server EF Core. Для EF Core: 3-7.
linq2db.EntityFrameworkCore
Альтернативный переводчик запросов LINQ к выражениям SQL. Для EF Core: 2-8.
Включает поддержку расширенных функций SQL, таких как выражения CTE, массовое копирование, табличные указания, оконные функции, временные таблицы и операции создания, обновления и удаления на стороне базы данных.
EFCore.SoftDelete
Реализация для обратимого удаления сущностей. Для EF Core: 3-6.
EntityFrameworkCore.ConfigurationManager
Расширяет EF Core для разрешения строка подключения из App.config. Для EF Core: 3-9.
Detached Mapper
Средство сопоставления DTO-Entity с обработкой композиции/агрегирования (аналогично GraphDiff). Для EF Core: 3-8.
EntityFrameworkCore.Sqlite.NodaTime
Добавляет поддержку типов NodaTime при использовании SQLite. Для EF Core: 5-8.
ErikEJ.EntityFrameworkCore.SqlServer.Dacpac
Обеспечивает реконструирование модели EF Core из пакета приложения уровня данных SQL Server (.dacpac). Для EF Core: 6-8.
ErikEJ.EntityFrameworkCore.DgmlBuilder
Создает содержимое DGML (граф), которое визуализирует DbContext. Добавляет метод расширения AsDgml() в класс DbContext. Для EF Core: 6-7.
ErikEJ.EntityFrameworkCore.SqlServer.SqlQuery
Примечание.
Необработанные запросы SQL для несопоставленных типов поддерживаются непосредственно в EF Core с EF Core 8.
Предоставляет методы SqlQueryAsync<T>
и SqlQueryValueAsync<T>
, которые помогают указать произвольные классы или список примитивных типов на основе необработанного SQL-запроса. Для EF Core: 6-7.
ErikEJ.EntityFrameworkCore.SqlServer.DateOnlyTimeOnlyOnly
Примечание.
SQL Server DateOnly
и TimeOnly
сопоставление поддерживаются непосредственно в EF Core с EF Core 8.
DateOnly
TimeOnly
Используйте типы .NET с поставщиком SQL Server EF Core. Для EF Core: 6-7.
EntityFramework.Exceptions
В Entity Framework Core все исключения базы данных упаковываются в DbUpdateException. EntityFramework.Exceptions обрабатывает все сведения о базе данных, чтобы определить нарушенное ограничение, и позволяет применять типизированные исключения, например UniqueConstraintException
, CannotInsertNullException
, MaxLengthExceededException
, NumericOverflowException
, ReferenceConstraintException
, если запрос нарушает ограничения базы данных.
Поддерживает SQL Server, Postgres, MySQL, SQLite и Oracle. Для EF Core: 3-8.
EntityFrameworkCore.FSharp
Добавляет поддержку времени разработки F# в EF Core. Для EF Core: 5-6.
EntityFrameworkCore.VisualBasic
Добавляет поддержку времени разработки VB в EF Core. Для EF Core: 5-8.
Krzysztofz01.EFCore.QueryFilterBuilder
Расширение для Entity Framework, позволяющее создавать и использовать множество фильтров запросов. Для EF Core: 5-7.
Pagination.EntityFrameworkCore.Extensions
Это библиотека для разбиения на страницы в Entity Framework Core. Совместима с Entity Framework Core в качестве расширения и поддерживает как асинхронные, так и синхронные операции. В ней также содержится множество полезных функций, особенно популярных в веб-разработке. Для EF Core: 2-7.
Laraue.EfCoreTriggers
Текучий API для объявления триггеров в Context.OnModelCreating
, которые затем встраиваются в миграции. Поставщики для Postgres, MySQL, SQL Server и SQLite. Для EF Core: 5-8.
EntityCloner.Microsoft.EntityFrameworkCore
Клонирование сущностей с помощью конфигурации EF Core. Можно использовать метод Include
, чтобы указать необходимые данные для клонирования. Для EF Core: 5-8.
Расширения Zomp для EF Core
Предоставляет оконные (аналитические) функции и двоичные функции для EF Core. Поставщики: SQL Server, SQLite, PostgreSQL. Для EF Core: 6-8.
Ainoraz.EFCore.IncludeBuilder
Расширение для EF Core, которое предоставляет альтернативный синтаксис Include
для лучшей поддержки следующих сценариев:
- загрузка нескольких сущностей на одном уровне (одноуровневые элементы);
- написание методов расширения, которые не зависят от уровня вложения.
Для EF Core: 6-7.
Линейка Entity Framework
Добавляет настройку во время разработки реверсивной модели, включая:
- Именование классов, свойств и навигации
- Пропускание шаблонов любой схемы, таблицы или столбца.
- Переопределение типов свойств, особенно для перечислений.
- Поддержка EF6 EDMX, обеспечивающая плавное 3-шаговый путь обновления от EF6 до EF Core.
Для EF Core: 6-8.
Репозиторий репозитория | GitHub Cli Tool NuGet Design NuGet |
LessCode.EFCore.StronglyTypedId
Генератор источника, который может автоматически создавать классы строго типизированного идентификатора для сущностей. Для EF Core: 7.
Microsoft.EntityFrameworkCore.DynamicLinq
Библиотека Dynamic LINQ позволяет выполнять запрос с динамической строкой и предоставлять некоторые служебные методы, такие как ParseLambda, Parse и CreateClass. Для EF Core: 2-8.
Репозиторий | NuGet веб-сайта | GitHub
EfCoreNexus.Framework
EfCoreNexus помогает интегрировать ядро платформы сущностей в приложения blazor. Благодаря отражению он добавляет классы сущностей автоматически и предоставляет базовые функции crud для них без написания дополнительного кода.
Для EF Core: 8.
Посредник
Обновление графа сущности в хранилище на заданный объект путем вставки, обновления и удаления соответствующих сущностей. Для EF Core: 6-7.
Автокомпьютер
Сохраненные вычисляемые свойства в EF Core, которые обновляются автоматически при сохранении изменений. Для EF Core: 8.
Интеграции API
Эти пакеты разработаны для прямой интеграции с EF Core с целью предоставления различных API.
.NET Aspire
Расширьте возможности локальной разработки, упрощая управление конфигурацией и взаимодействием в собственном облаке. Для EF Core: 8.
Репозиторий | NuGet веб-сайта | GitHub
HotChocolate
Создайте конечную точку GraphQL в любом ресурсе.
GraphQL.EntityFramework
Добавьте поддержку IQueryable
Entity Framework в GraphQL. Для EF Core: 6-8.
EntityGraphQL
Сервер GraphQL с жесткой интеграцией EntityFramework. Для EF Core: 5-8.
OData
Стандарт для реализации REST API со спецификациями для обнаружения, фильтрации, сортировки, проекций, навигации, групповых операций и многого другого.
Расширения для неподдерживаемых версий EF Core
Использование nHydrate ORM для Entity Framework
O/RM создает строго типизированные расширяемые классы для Entity Framework. Созданный код представляет собой Entity Framework Core. Различий при этом нет. Это не замена EF или пользовательского O/RM. Это визуальный слой моделирования, который позволяет команде управлять сложными схемами баз данных. Он поддерживает программное обеспечение SCM, например Git, обеспечивая доступ многих пользователей к модели с минимальными конфликтами. Установщик отслеживает изменения модели и создает скрипты обновления. Для EF Core: 3.
Microsoft.EntityFrameworkCore.UnitOfWork
Подключаемый модуль Microsoft.EntityFrameworkCore для поддержки репозитория, шаблонов Unit of Work и нескольких баз данных с поддержкой распределенных транзакций. Для EF Core: 2-3.
Toolbelt.EntityFrameworkCore.IndexAttribute
Новая реализация атрибута [Index] (с расширением для создания моделей). Для EF Core: 2-5.
EfCoreTemporalTable
Примечание.
Темпоральные таблицы SQL Server поддерживаются непосредственно в EF Core начиная с версии EF Core 6.
Простое выполнение темпоральных запросов к избранной базе данных с помощью представленных методов расширения: AsTemporalAll()
, AsTemporalAsOf(date)
, AsTemporalFrom(startDate, endDate)
, AsTemporalBetween(startDate, endDate)
, AsTemporalContained(startDate, endDate)
. Для EF Core: 3-5.
EntityFrameworkCore.TemporalTables
Примечание.
Темпоральные таблицы SQL Server поддерживаются непосредственно в EF Core начиная с версии EF Core 6.
Библиотека расширений для Entity Framework Core, которая позволяет разработчикам, работающим с SQL Server, легко использовать темпоральные таблицы. Для EF Core: 2-5.
Dabble.EntityFrameworkCore.Temporal.Query
Примечание.
Темпоральные таблицы SQL Server поддерживаются непосредственно в EF Core начиная с версии EF Core 6.
LINQ-расширения Entity Framework Core 3.1 для поддержки запросов во временных таблицах Microsoft SQL Server. Для EF Core: 3.
EntityFrameworkCore.NCache
Поставщик Entity Framework Core NCache является распределенным поставщиком кэша второго уровня для кэширования результатов запросов. Распределенная архитектура NCache повышает уровень его масштабируемости и высокой доступности. Для EF Core: 2-3.
Ramses
Перехватчики в ходе жизненного цикла (для SaveChanges). Для EF Core: 2-3.