共用方式為


EF Core 工具和擴充功能

這些工具和擴充功能提供 Entity Framework Core 的額外功能。

重要

延伸模組以各種來源建置而成,且不屬於 Entity Framework Core 專案維護的一部份。 考慮使用協力廠商延伸模組時,請務必評估其品質、授權、相容性、支援等,確保其符合您的需求。 特別是針對舊版 EF Core 所建置的延伸模組,可能需要予以更新,才能搭配最新版本使用。

工具

EF Core 強大工具

EF Core Power Tools 是 Visual Studio 的擴充功能,透過簡單的使用者介面提供各種 EF Core 設計階段工作。 它包含對現有資料庫的 DbContext 和實體類別進行的反向工程、SQL Server DACPAC,以及模型的視覺化效果和圖表。 EF Core 的範圍:8-10。

GitHub Wiki

EF Core Power Tools 命令列介面 (CLI)

EF Core Power Tools CLI 是 .NET 全域命令行工具。 它可讓您從現有的資料庫和 SQL Server DACPAC 進行 DbContext 和實體類別的進階反向工程。 EF Core 的範圍:8-10。

NuGet

LLBLGen 專業版

LLBLGen Pro 是實體模型化解決方案,具備 Entity Framework 與 Entity Framework Core 的支援。 您可加以利用來輕鬆定義實體模型,並將其對應至資料庫,優先使用資料庫或模型後,即可開始直接撰寫查詢。 針對 EF Core,2-9。

網站

Devart 實體開發人員

Entity Developer 是功能強大的 O/RM 設計工具,適用於 ADO.NET Entity Framework、NHibernate、LinqConnect、Telerik Data Access,以及 LINQ to SQL。 它支援使用 model first 或 database first 方法,以及 C# 或 Visual Basic 程式碼產生,以視覺化的方式設計 EF Core 模型。 針對 EF Core,2-9。

網站

DevMagic EF 核心助手

EF Core Sidekick 是 Visual Studio 擴充功能,可增強 Visual Studio 中自動程式碼產生的強大功能。 它提供一組工具和範本,可從現有資料庫產生 EF Core 實體和衍生 DbContext,然後從實體產生服務和 REST API。 針對 EF Core(版本 6 至 9)。

Visual Studio Marketplace | 網站

Entity Framework 視覺效果編輯器

Entity Framework 視覺效果編輯器是 Visual Studio 延伸模組,可為 EF 6 和 EF Core 類別的視覺效果設計新增 O/RM 設計工具。 因為程式碼會透過 T4 範本產生,所以能加以自訂來滿足各種需求。 它支援繼承、單向及雙向關聯、列舉,還能夠對類別進行色彩編碼以及新增文字區塊,以說明設計中可能較不易懂的部分。 適用於 EF Core 版本 2 到 8。

Visual Studio 市集

efmig

efmig 是多平臺 GUI 應用程式,可在使用 Entity Framework Core 時加速日常開發。 它涵蓋最受歡迎的使用案例,透過簡單的一鍵式介面來產生移轉程式碼和指令碼。 適用於 EF Core 版本 2 到 8。

GitHub 存放庫

EFCore.Visualizer

使用 Entity Framework Core 查詢方案偵錯工具視覺化檢視,您可以直接在 Visual Studio 內檢視查詢的查詢方案。 視覺化檢視目前支援 SQL Server 和 PostgreSQL。 適用於 EF Core:7-8。

Visual Studio 市集

擴充

EFCoreSecondLevelCacheInterceptor

第二個層級快取是查詢快取。 EF 命令的結果會存放在快取中,使相同的 EF 命令會從快取擷取其資料,而不必再次向資料庫再次執行命令。 適用於 EF Core:3-8。

GitHub 存放庫 | NuGet

EntityFrameworkCore.Scaffolding.Handlebars

可讓您搭配 Handlebars 範本使用 Entity Framework Core 工具鏈,自訂從現有資料庫進行反向工程的類別。 適用於 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

延伸驗證以允許使用 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 和 8。

GitHub 存放庫 | NuGet

實體框架增強版

使用特性如 Include Filter、Auditing、Caching、Query Future、Batch Delete、Batch Update 等等來擴充你的 DbContext。 對於 EF Core:2-10。

網站 | GitHub 存放庫 | NuGet

Entity Framework 擴充功能

使用高效能大量作業擴充 DbContext:BulkSaveChanges、BulkInsert、BulkUpdate、BulkDelete、BulkMerge 等等。 對於 EF Core:2-10。

網站 | NuGet

Expressionify

新增在 LINQ Lambda 中呼叫擴充方法的支援。 適用於 EF Core 版本 3 到 9。

GitHub 存放庫 | NuGet

EntityLinq

關聯式資料庫的替代技術(非 Microsoft 的)語言整合查詢(LINQ)。 其可讓您使用 C# 來撰寫強型別 SQL 查詢。 適用於 EF Core:3-8。

  • 查詢建立的完整 C# 支援:Lambda 內部的多個陳述式、變數、函式等。
  • 與 SQL 沒有語意隔閡。 EntityLinq 會將 SQL 陳述式 (例如 SELECTFROMWHERE) 宣告為第一級 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 類型的原生支援新增至適用於 SQL Server 的 EntityFrameworkCore。 適用於 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

獨立的對應工具

具有組合/彙總處理(類似於 GraphDiff)的 DTO-Entity 映射器。 適用於 EF Core:3-8。

GitHub 存放庫 | NuGet

EntityFrameworkCore.Sqlite.NodaTime

新增使用 SQLite 時對 NodaTime 類型的支援。 針對EF Core: 5-9.

GitHub 存放庫 | NuGet

ErikEJ.EntityFrameworkCore.SqlServer.Dacpac

可針對 SQL Server 資料層應用程式套件 (.dacpac) 進行 EF Core 模型的反向工程。 針對 EF Core(版本 6 至 9)。

GitHub 存放庫 | NuGet

ErikEJ.EntityFrameworkCore.DgmlBuilder

產生會將您的 DbContext 視覺化的 DGML (圖形) 內容。 將 AsDgml () 擴充方法新增至 DbCoNtext 類別。 針對 EF Core(版本 6 至 9)。

GitHub 存放庫 | NuGet

EntityFramework.Exceptions

使用 Entity Framework Core 時,所有資料庫例外狀況都會包裝在 DbUpdateException 中。 EntityFramework.Exceptions 會處理所有資料庫專有詳細資料,以尋找違反的條件約束,並允許您在查詢違反資料庫條件約束時使用具型別例外狀況,例如 UniqueConstraintExceptionCannotInsertNullExceptionMaxLengthExceededExceptionNumericOverflowExceptionReferenceConstraintException

支援 SQL Server、Postgres、MySql、SQLite 與 Oracle。 適用於 EF Core:3-8。

GitHub 儲存機制

EntityFrameworkCore.VisualBasic

新增對 EF Core 的 VB 設計階段支援。 適用於 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

實體架構尺規

增加設計時可自訂的反向工程模型,包括:

  • 類別、屬性和導覽命名
  • 跳過任何架構、資料表或資料行的建構。
  • 覆寫屬性類型,特別是列舉類型。
  • EF6 EDMX 支援,提供從 EF6 到 EF Core 的順暢 3 步驟升級路徑。

適用於 EF Core:6-8。

GitHub 存放庫 | CLI 工具 NuGet | NuGet 設計

Microsoft.EntityFrameworkCore.DynamicLinq

動態 LINQ 程式庫可讓您使用動態字串執行查詢,並提供一些公用程式方法,例如 ParseLambda、Parse 和 CreateClass。 對於 EF Core:2-10。

網站 | GitHub 存放庫 | NuGet

EfCoreNexus.Framework

EfCoreNexus 可協助將實體架構核心整合到 Blazor 應用程式中。 透過反射,它會自動新增實體類別,並為您提供基本的 CRUD 功能,而不需要撰寫額外的程式碼。 適用於 EF Core:8。

GitHub 存放庫 | NuGet

協調器

插入、更新及移除各自的實體,藉此將存放區中的實體圖表更新為指定的圖表。 適用於 EF Core:6-7。

GitHub 存放庫

自動計算

EF Core 中的持久化計算屬性會在儲存變更時自動更新。 適用於 EF Core:8。

GitHub 存放庫 | NuGet

EntityFrameworkCore.AuditInterceptor(實體框架核心的審計攔截器)

提供無縫稽核功能的 Entity Framework Core 函式庫。 它會自動追蹤實體變更,包括進行變更的人員,以及何時進行變更。 程式庫會與 .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。

熱望

藉由簡化雲端原生應用程式的設定和互相連線的管理,增強本機開發體驗。 EF Core 的範圍:8-10。

網站 | GitHub 存放庫 | NuGet

HotChocolate

在任何資源之上建置您自己的 GraphQL 端點。

GitHub 存放庫 | NuGet

GraphQL.EntityFramework

將 Entity Framework IQueryable 支援新增至 GraphQL。 適用於 EF Core:6-8。

GitHub 存放庫 | NuGet

EntityGraphQL

具有緊密 EntityFramework 整合的 GraphQL 伺服器。 適用於 EF Core:5-8。

GitHub 存放庫 | NuGet

OData

一個標準,用於通過探索、篩選、排序、投影、導航、大量操作等規範來實作 REST API。

GitHub 存放庫 | NuGet

不受支援的 EF Core 版本的擴充功能

EntityFrameworkCore.SqlServer.HierarchyId

注意

EF Core 8 起,EF Core 內直接支援 SQL Server hierarchyid 資料類型。

為 SQL Server EF Core 提供者新增 hierarchyid 支援。 适用于 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

注意

EF Core 8 起,EF Core 內直接支援針對未對應的類型進行原始 SQL 查詢。

提供 SqlQueryAsync<T>SqlQueryValueAsync<T> 方法,協助您從原始 SQL 查詢填入任意類別或基本類型清單。 適用於 EF Core:6-7。

GitHub 存放庫 | NuGet

ErikEJ.EntityFrameworkCore.SqlServer.DateOnlyTimeOnly

注意

DateOnly 起,EF Core 內直接支援 SQL Server TimeOnly 的對應。

請使用 .NET 類型 DateOnlyTimeOnly 搭配 EF Core SQL Server 提供者。 適用於 EF Core:6-7。

GitHub 存放庫 | NuGet

Entity Framework 的 nHydrate ORM

一種 O/RM,能為 Entity Framework 創建強類型且可擴展的類別。 產生的程式碼為 Entity Framework Core。 因此兩者沒有任何不同。 這不能取代 EF 或自訂 O/RM。 這是一種視覺化的模型化層,可讓小組管理複雜的資料庫結構描述。 與 Git 這類 SCM 軟體運作良好,允許多位使用者存取您的模型,並且衝突極少。 安裝程式會追蹤模型變更並建立升級指令碼。 適用於 EF Core:3。

Github 存放庫

Microsoft.EntityFrameworkCore.UnitOfWork

Microsoft.EntityFrameworkCore 的外掛程式,可支援儲存庫、工作單元模式,以及支援分散式交易的多資料庫。 適用於 EF Core:2-3。

GitHub 存放庫

Toolbelt.EntityFrameworkCore.IndexAttribute

[Index] 屬性的恢復(用於模型建構的擴展功能)。 適用於 EF Core:2-5。

GitHub 存放庫 | NuGet

EfCoreTemporalTable

注意

EF Core 6 開始,EF Core 內就直接支援 SQL Server 暫存資料表。

使用下列引進的擴充方法,輕鬆地在您慣用的資料庫上執行時態性查詢:AsTemporalAll()AsTemporalAsOf(date)AsTemporalFrom(startDate, endDate)AsTemporalBetween(startDate, endDate)AsTemporalContained(startDate, endDate)。 適用於 EF Core:3-5。

GitHub 存放庫 | NuGet

EntityFrameworkCore.TemporalTables

注意

EF Core 6 開始,EF Core 內就直接支援 SQL Server 暫存資料表。

Entity Framework Core 的延伸模組程式庫,可讓使用 SQL Server 的開發人員輕鬆地使用時態表。 適用於 EF Core:2-5。

GitHub 存放庫 | NuGet

Dabble.EntityFrameworkCore.Temporal.Query

注意

EF Core 6 開始,EF Core 內就直接支援 SQL Server 暫存資料表。

Entity Framework Core 3.1 的 LINQ 延伸模組,以支援 Microsoft SQL Server 時態表查詢。 適用於 EF Core:3。

GitHub 存放庫 | NuGet

EntityFrameworkCore.NCache

NCache Entity Framework Core Provider 是快取查詢結果的分散式第二層級快取提供者。 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 存放庫