Strumenti ed estensioni di EF Core
Questi strumenti e le estensioni offrono funzionalità aggiuntive per Entity Framework Core.
Importante
Le estensioni sono composte da diversi tipi di origine e non vengono mantenute nell'ambito del progetto di Entity Framework Core. Quando si prende in considerazione un'estensione di terze parti, valutarne con cura gli aspetti relativi a qualità, licenze, compatibilità, supporto e così via, per essere certi che soddisfi i propri requisiti. In particolare, un'estensione compilata per una versione precedente di EF Core potrebbe necessitare di un aggiornamento prima che funzioni con le versioni più recenti.
Strumenti
EF Core Power Tools
EF Core Power Tools è un'estensione di Visual Studio che espone varie attività di progettazione di EF Core in un'interfaccia utente intuitiva. Include il reverse engineering delle classi DbContext e di entità da database esistenti e DACPACs di SQL Servere visualizzazioni e diagrammi del modello. Per EF Core: 6-9.
EF Core Power Tools CLI
EF Core Power Tools CLI è uno strumento da riga di comando globale .NET. Consente la reverse engineering avanzata delle classi DbContext e di entità da database esistenti e DACPACs di SQL Server. Per EF Core: 6-9.
LLBLGen Pro
LLBLGen Pro è una soluzione per la modellazione delle entità con supporto per Entity Framework ed Entity Framework Core. Consente di definire facilmente il modello di entità e di eseguirne il mapping al database, usando l'approccio Database-First o Model-First, in modo da iniziare subito a scrivere le query. Per EF Core: 2-8.
Devart Entity Developer
Entity Developer è una potente finestra di progettazione O/RM per ADO.NET Entity Framework, NHibernate, LinqConnect, Telerik Data Access e LINQ to SQL. Supporta la progettazione visiva di modelli EF Core, usando l'approccio con precedenza del modello o precedenza del database e la generazione di codice C# o Visual Basic. Per EF Core: 2-7.
DevMagic EF Core Sidekick
EF Core Sidekick è un'estensione di Visual Studio che migliora la potenza della generazione di codice automatico in Visual Studio. Fornisce un set di strumenti e modelli per la generazione di entità EF Core e dbContext derivati dal database esistente e quindi la generazione di servizi e API REST dalle entità. Per EF Core: 6-8.
Sito Web di Visual Studio Marketplace |
Entity Framework Visual Editor
Entity Framework Visual Editor è un'estensione di Visual Studio che aggiunge una finestra di progettazione O/RM per la progettazione visiva di classi di Entity Framework 6 ed EF Core. Il codice viene generato usando i modelli T4, pertanto può essere personalizzato per soddisfare qualsiasi esigenza. Supporta l'ereditarietà, le associazioni unidirezionali e bidirezionali, le enumerazioni e la possibilità di usare una codifica a colori per le classi e di aggiungere blocchi di testo, per spiegare parti potenzialmente molto complesse del progetto. Per EF Core: 2-8.
IWAPI
IWAPI (Instant Web API) è un motore di scaffolding per .NET Core in grado di automatizzare la generazione di classi, entità, modelli DbContext e crea un'API Web funzionante da qualsiasi database di SQL Server.
efmig
efmig è un'applicazione GUI multipiattaforma che accelera lo sviluppo giornaliero quando si usa Entity Framework Core. Vengono illustrati i casi d'uso più diffusi, ad esempio il codice di migrazione e la generazione di script con un'interfaccia semplice con un clic. Per EF Core: 2-8.
EFCore.Visualizer
Con il visualizzatore del debugger del piano di query di Entity Framework Core, è possibile visualizzare il piano di query delle query direttamente all'interno di Visual Studio. Attualmente, il visualizzatore supporta SQL Server e PostgreSQL. Per EF Core: 7-8.
Estensioni
Microsoft.EntityFrameworkCore.AutoHistory
Libreria di plug-in che consente di registrare automaticamente le modifiche ai dati eseguite da EF Core in una tabella di cronologia. Per EF Core: 2-6.
EFCoreSecondLevelCacheInterceptor
La memorizzazione nella cache di secondo livello è una cache della query. I risultati dei comandi EF verranno memorizzati nella cache, in modo che gli stessi comandi EF recupereranno i dati dalla cache anziché eseguirli di nuovo sul database. Per EF Core: 3-8.
EntityFrameworkCore.Scaffolding.Handlebars
Consente la personalizzazione di classi decompilate da un database esistente usando la catena di strumenti di Entity Framework Core con modelli Handlebars. Per EF Core: 2-8.
NeinLinq.EntityFrameworkCore
NeinLinq estende i provider LINQ, ad esempio Entity Framework, e consente il riuso delle funzioni, la riscrittura di query e la creazione di query dinamiche usando predicati e selettori traducibili. Per EF Core: 3-8.
EFCore.BulkExtensions
Estensioni EF Core per operazioni in blocco (inserimento, aggiornamento, eliminazione). Per EF Core: 2-8.
Bricelam.EntityFrameworkCore.Pluralizer
Aggiunge la pluralizzazione in fase di progettazione. Per EF Core: 2-9.
Verify.EntityFramework
Estende Verify per consentire il test degli snapshot con Entity Framework. Per EF Core: 3-8.
LocalDB
Offre un wrapper per LocalDB di SQL Server Express per semplificare l'esecuzione di test per Entity Framework. Per EF Core: 3-8.
EntityFrameworkCore.Projectables
Magic di proiezione flessibile per EF Core. Consente di usare proprietà, metodi e metodi di estensione nella query senza valutazione del client. Per EF Core 3- 6, 8.
EntityFrameworkCore.Triggered
Trigger per EF Core. Consentono di rispondere alle modifiche nel dbContext prima e dopo che ne venga eseguito il commit nel database. I trigger sono completamente asincroni e supportano l'inserimento di dipendenze, l'ereditarietà, l'ereditarietà, la propagazione e altro ancora. Per EF Core: 3-6.
Entity Framework Plus
Estende DbContext con funzionalità quali: Includi filtro, controllo, memorizzazione nella cache, query future, eliminazione batch, aggiornamento batch e altro ancora. Per EF Core: 2-9.
Website | GitHub repository | NuGet
Entity Framework Extensions
Estende DbContext con operazioni bulk ad alte prestazioni: BulkSaveChanges, BulkInsert, BulkUpdate, BulkDelete, BulkMerge e altro ancora. Per EF Core: 2-9.
Expressionify
Aggiunta del supporto per la chiamata di metodi di estensione nelle espressioni lambda LINQ. Per EF Core: 3-6.
EntityLinq
Tecnologia LINQ (Language Integrated Query) alternativa (non basata su MS) per database relazionali. Consente di usare C# per scrivere query SQL fortemente tipizzate. Per EF Core: 3-8.
- Supporto C# completo per la creazione di query: più istruzioni all'interno di lambda, variabili, funzioni e così via.
- Nessun gap semantico con SQL. EntityLinq dichiara istruzioni SQL (ad esempio
SELECT
,FROM
,WHERE
) come metodi C# di prima classe, combinando la sintassi familiare con IntelliSense, l'indipendenza dai tipi e il refactoring.
Di conseguenza, SQL diventa semplicemente "un'altra" libreria di classi che espone l'API in locale, letteralmente "SQL integrato nel linguaggio".
EFCore.NamingConventions
Per tutti i nomi di tabella e colonna verrà automaticamente usata la convenzione di denominazione snake_case, tutte maiuscole o tutte minuscole. Per EF Core: 3-8.
EFCore.CheckConstraints
Questo plug-in consente di scegliere esplicitamente alcuni vincoli CHECK, attivarlo per creare automaticamente i vincoli. Per EF Core: 5-9.
SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime
Aggiunge il supporto nativo a EntityFrameworkCore per SQL Server per i tipi NodaTime. Per EF Core: 3-9.
EntityFrameworkCore.SqlServer.HierarchyId
Nota
Il tipo di dati gerarchizzati di SQL Server è supportato direttamente all'interno di EF Core a partire da EF Core 8.
Aggiunge il supporto di hierarchyid al provider SQL Server EF Core. Per EF Core: 3-7.
linq2db.EntityFrameworkCore
Convertitore alternativo di query LINQ in espressioni SQL. Per EF Core: 2-8.
Include il supporto per le funzionalità avanzate di SQL, ad esempio espressioni di tabella comuni, copia bulk, hint di tabella, funzioni finestra, tabelle temporanee e operazioni di creazione/aggiornamento/eliminazione sul lato database.
EFCore.SoftDelete
Implementazione per l'eliminazione temporanea di entità. Per EF Core: 3-6.
EntityFrameworkCore.ConfigurationManager
Estende EF Core per risolvere i stringa di connessione da App.config. Per EF Core: 3-9.
Mapper scollegato
Mapper DTO-entità con gestione della composizione/aggregazione (simile a GraphDiff). Per EF Core: 3-8.
EntityFrameworkCore.Sqlite.NodaTime
Aggiunge il supporto per i tipi NodaTime quando si usa SQLite. Per EF Core: 5-8.
ErikEJ.EntityFrameworkCore.SqlServer.Dacpac
Abilita il reverse engineering di un modello EF Core da un pacchetto applicazione livello dati di SQL Server (DACPAC). Per EF Core: 6-9.
ErikEJ.EntityFrameworkCore.DgmlBuilder
Consente di generare contenuto DGML (Graph) che visualizza dbContext. Aggiunge il metodo di estensione AsDgml() alla classe DbContext. Per EF Core: 6-9.
ErikEJ.EntityFrameworkCore.SqlServer.SqlQuery
Nota
Le query SQL non elaborate su tipi non mappati sono supportate direttamente all'interno di EF Core a partire da EF Core 8.
Offre i metodi SqlQueryAsync<T>
e SqlQueryValueAsync<T>
per popolare classi arbitrarie o un elenco di tipi primitivi da una query SQL non elaborata. Per EF Core: 6-7.
ErikEJ.EntityFrameworkCore.SqlServer.DateOnlyTimeOnly
Nota
SQL Server DateOnly
e TimeOnly
il mapping sono supportati direttamente all'interno di EF Core a partire da EF Core 8.
Usare i tipi DateOnly
e TimeOnly
.NET con il provider DI SQL Server di EF Core. Per EF Core: 6-7.
EntityFramework.Exceptions
Quando si usa Entity Framework Core, viene eseguito il wrapping di tutte le eccezioni di database in DbUpdateException. EntityFramework.Exceptions gestisce tutti i dettagli specifici del database per individuare il vincolo violato e consente di usare eccezioni tipizzate, ad esempio UniqueConstraintException
, CannotInsertNullException
, MaxLengthExceededException
, NumericOverflowException
, ReferenceConstraintException
quando la query viola i vincoli del database.
Supporta SQL Server, Postgres, MySql, SQLite e Oracle. Per EF Core: 3-8.
EntityFrameworkCore.FSharp
Aggiunge il supporto F# per la fase di progettazione a EF Core. Per EF Core: 5-6.
EntityFrameworkCore.VisualBasic
Aggiunge il supporto VB per la fase di progettazione a EF Core. Per EF Core: 5-8.
Krzysztofz01.EFCore.QueryFilterBuilder
Estensione per Entity Framework che consente di creare e gestire più filtri di query. Per EF Core: 5-7.
Pagination.EntityFrameworkCore.Extensions
Libreria per la paginazione in EntityFrameworkCore. Funziona bene con Entity Framework Core come estensione e supporta sia l'opzione asincrona che quella sincrona. Ha anche molte funzionalità utili comunemente usate in particolare per lo sviluppo Web. Per EF Core: 2-7.
Laraue.EfCoreTriggers
API Fluent per dichiarare i trigger in Context.OnModelCreating
che in seguito vengono incorporati nelle migrazioni. Provider a Postgres, MySQL, SQL Server e SQLite. Per EF Core: 5-8.
EntityCloner.Microsoft.EntityFrameworkCore
Clonazione di entità usando la configurazione di EF Core. È possibile usare il metodo Include
per specificare i dati correlati da clonare. Per EF Core: 5-8.
Estensioni Zomp EF Core
Fornisce funzioni finestra (analisi) e funzioni binarie per EF Core. Provider: SQL Server, SQLite, PostgreSQL. Per EF Core: 6-8.
Ainoraz.EFCore.IncludeBuilder
Estensione per EF Core che fornisce una sintassi di Include
alternativa per supportare meglio gli scenari seguenti:
- Caricamento di più entità sullo stesso livello (elementi di pari livello).
- Scrittura di metodi di estensione indipendenti dal livello di annidamento.
Per EF Core: 6-7.
Entity Framework Ruler
Aggiunge la personalizzazione in fase di progettazione del modello inverso, tra cui:
- Denominazione di classe, proprietà e navigazione
- Ignorare lo scaffolding di qualsiasi schema, tabella o colonna.
- Override dei tipi di proprietà, in particolare per le enumerazioni.
- Supporto EDMX di EF6, che offre un percorso di aggiornamento graduale in 3 passaggi da EF6 a EF Core.
Per EF Core: 6-8.
Strumento dell'interfaccia della riga di comando del repository | GitHub NuGet Design NuGet |
LessCode.EFCore.StronglyTypedId
Generatore di origine che può generare automaticamente classi con id fortemente tipizzato per le entità. Per EF Core: 7.
Microsoft.EntityFrameworkCore.DynamicLinq
La libreria LINQ dinamica consente di eseguire query con una stringa dinamica e di fornire alcuni metodi di utilità, ad esempio ParseLambda, Parse e CreateClass. Per EF Core: 2-9.
Website | GitHub repository | NuGet
EfCoreNexus.Framework
EfCoreNexus consente di integrare entity framework core in app blazor. Tramite reflection aggiunge automaticamente le classi di entità e offre funzionalità crud di base per loro senza scrivere codice aggiuntivo.
Per EF Core: 8.
Riconciliatore
Aggiornare un grafo di entità nell'archivio con uno specificato inserendo, aggiornando e rimuovendo le rispettive entità. Per EF Core: 6-7.
AutoCompute
Proprietà calcolate persistenti in EF Core che vengono aggiornate automaticamente al salvataggio delle modifiche. Per EF Core: 8.
Integrazioni API
Questi pacchetti sono progettati per l'integrazione diretta con EF Core per esporre varie API.
.NET Aspire
Migliorare l'esperienza di sviluppo locale semplificando la gestione della configurazione e delle interconnessioni dell'app nativa del cloud. Per EF Core: 8.
Website | GitHub repository | NuGet
HotChocolate
Consente di creare un endpoint GraphQL personalizzato sopra qualsiasi risorsa.
GraphQL.EntityFramework
Consente di aggiungere il supporto di Entity Framework IQueryable
a GraphQL. Per EF Core: 6-8.
EntityGraphQL
Server GraphQL con stretta integrazione entityFramework. Per EF Core: 5-8.
OData
Standard per l'implementazione di API REST con specifiche per l'individuazione, il filtro, l'ordinamento, le proiezioni, gli spostamenti, le operazioni in blocco e altro ancora.
Estensioni per le versioni di EF Core non supportate
ORM nHydrate per Entity Framework
Mapper relazionale a oggetti (O/RM) che consente di creare classi estendibili e fortemente tipizzate per Entity Framework. Il codice generato è Entity Framework Core. Non c'è alcuna differenza. Non si tratta di una sostituzione per EF o di un O/RM personalizzato. Si tratta di un livello di modellazione visivo che consente a un team di gestire schemi di database complessi. Funziona bene con software SCM come Git, consentendo l'accesso multiutente al modello con conflitti minimi. Il programma di installazione tiene traccia delle modifiche del modello e crea gli script di aggiornamento. Per EF Core: 3.
Microsoft.EntityFrameworkCore.UnitOfWork
Plug-in per Microsoft.EntityFrameworkCore che supporta repository, modelli di unità di lavoro e più database con la transazione distribuita supportata. Per EF Core: 2-3.
Toolbelt.EntityFrameworkCore.IndexAttribute
Ripresa dell'attributo [Index] (con estensione per la compilazione del modello). Per EF Core: 2-5.
EfCoreTemporalTable
Nota
Le tabelle temporanee di SQL Server sono supportate direttamente all'interno di EF Core a partire da EF Core 6.
Consente di eseguire facilmente query temporanee nel database preferito usando i metodi di estensione introdotti: AsTemporalAll()
, AsTemporalAsOf(date)
, AsTemporalFrom(startDate, endDate)
, AsTemporalBetween(startDate, endDate)
, AsTemporalContained(startDate, endDate)
. Per EF Core: 3-5.
EntityFrameworkCore.TemporalTables
Nota
Le tabelle temporanee di SQL Server sono supportate direttamente all'interno di EF Core a partire da EF Core 6.
Libreria di estensioni per Entity Framework Core che consente agli sviluppatori che usano SQL Server di usare facilmente le tabelle temporali. Per EF Core: 2-5.
Dabble.EntityFrameworkCore.Temporal.Query
Nota
Le tabelle temporanee di SQL Server sono supportate direttamente all'interno di EF Core a partire da EF Core 6.
Estensioni LINQ per Entity Framework Core 3.1 per supportare le query di tabelle temporali di Microsoft SQL Server. Per EF Core: 3.
EntityFrameworkCore.NCache
Il provider Entity Framework Core NCache è un provider di cache di secondo livello distribuito per la memorizzazione nella cache dei risultati delle query. L'architettura distribuita di NCache ne migliora la scalabilità e offre disponibilità elevata. Per EF Core: 2-3.
Ramses
Hook del ciclo di vita (per SaveChanges). Per EF Core: 2-3.