EF Core 工具和延伸模組

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

重要

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

工具

EF Core Power Tools

EF Core Power Tools 是 Visual Studio 延伸模組,在簡單使用者介面中公開各種設計階段工作。 包括現有資料庫和 SQL Server DACPAC 之 DbContext 及實體類別的反向工程、資料庫移轉的管理,以及模型視覺效果。 針對 EF Core:6-8。

GitHub Wiki

EF Core Power Tools CLI

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

GitHub 自述檔

LLBLGen Pro

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

網站

Devart Entity Developer

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

網站

DevMagic EF Core Sidekick

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

Visual Studio Marketplace | 網站

Entity Framework 視覺效果編輯器

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

Visual Studio Marketplace

IWAPI

IWAPI (立即 Web API) 是適用於 .NET Core 的 Scaffolding 引擎,可將 DbCoNtext 類別、實體與模型的產生自動化,並從任何 SQL Server 資料庫建立可運作的 Web API。

網站

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 Marketplace

擴充

Microsoft.EntityFrameworkCore.AutoHistory

外掛程式庫,能夠自動將 EF Core 執行的資料變更記錄到記錄資料表中。 針對 EF Core:2-6。

GitHub 存放庫 | NuGet

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

GitHub 存放庫 | NuGet

EFCore.BulkExtensions

適用於大量作業 (插入、更新、刪除) 的 EF Core 延伸模組。 針對 EF Core:2-8。

GitHub 存放庫 | NuGet

Bricelam.EntityFrameworkCore.Pluralizer

新增設計階段複數表示。 針對 EF Core:2-8。

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。

GitHub 存放庫 | NuGet

EntityFrameworkCore.Triggered

EF Core 的觸發程序。 在 DbCoNtext 變更認可至資料庫之前和之後,回應那些變更。 觸發程序是完全非同步的,而且支援相依性插入、繼承、串聯等等。 針對 EF Core:3-6。

GitHub 存放庫 | NuGet

Entity Framework Plus

使用下列功能擴充 DbContext:Include Filter、Auditing、Caching、Query Future、Batch Delete、Batch Update 等等。 針對 EF Core:2-8。

網站 | GitHub存放庫 | NuGet

Entity Framework 擴充功能

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

網站 | NuGet

Expressionify

新增在 LINQ Lambda 中呼叫擴充方法的支援。 針對 EF Core:3-6。

GitHub 存放庫 | NuGet

EntityLinq

關聯式資料庫的替代 (非 MS 型) Language-integrated Query (LINQ) 技術。 其可讓您使用 C# 來撰寫強型別 SQL 查詢。 針對 EF Core:3-6。

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

GitHub 存放庫 | NuGet

EntityFrameworkCore.SqlServer.HierarchyId

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

已中斷連結的對應工具

具有組合/彙總處理 (類似 GraphDiff) 的DTO-Entity 對應工具。 針對 EF Core:3-6。

GitHub 存放庫 | NuGet

EntityFrameworkCore.Sqlite.NodaTime

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

GitHub 存放庫 | NuGet

ErikEJ.EntityFrameworkCore.SqlServer.Dacpac

從 SQL Server 資料層應用程式套件 (.dacpac) 啟用 EF Core 模型的反向工程。 針對 EF Core:6-8。

GitHub 存放庫 | NuGet

ErikEJ.EntityFrameworkCore.DgmlBuilder

產生會將您的 DbContext 視覺化的 DGML (圖形) 內容。 將 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.DateOnlyTimeOnly

搭配 DateOnly EF Core SQL Server 提供者使用 和 TimeOnly .NET 類型。 針對 EF Core:6-7。

GitHub 存放庫 | NuGet

EntityFramework.Exceptions

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

支援 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

這是 EntityFrameworkCore 上 Pagination 的程式庫。 能以延伸模組形式完美地搭配 Entity Framework Core 運作,而且同時支援非同步與同步。 其也有許多常用的實用功能,特別是在 Web 開發方面。 針對 EF Core:2-7。

GitHub 存放庫 | NuGet

Laraue.EfCoreTriggers

Fluent 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 Ruler

新增反向工程模型的設計時間自定義,包括:

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

針對 EF Core:6-8。

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

LessCode.EFCore.StronglyTypedId

可以自動為實體產生強型別標識符類別的來源產生器。 針對EF Core:7。

GitHub 存放庫

Microsoft.EntityFrameworkCore.DynamicLinq

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

網站 | GitHub存放庫 | NuGet

EfCoreNexus.Framework

EfCoreNexus 可協助將實體架構核心整合到 blazor 應用程式中。 透過反映,它會自動新增實體類別,併為您提供基本 Crud 功能,而不需撰寫額外的程序代碼。

針對EF Core:8。

GitHub 存放庫 | NuGet

API 整合

這些套件的設計旨在直接與 EF Core 整合,以公開各種 API。

HotChocolate

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

GitHub 存放庫 | NuGet

GraphQL.EntityFramework

將 Entity Framework IQueryable 支援新增至 GraphQL。 針對 EF Core:6-8。

GitHub 存放庫 | NuGet

EntityGraphQL

具有緊密 EntityFramework 整合的 GraphQL 伺服器。 針對 EF Core:5-7。

GitHub 存放庫 | NuGet

OData

使用探索、篩選、排序、投影、瀏覽、大量作業等規格實作 REST API 的標準。

GitHub 存放庫 | NuGet

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

Entity Framework 的 nHydrate ORM

為 Entity Framework 建立可延伸類別的強型別 O/RM。 產生的程式碼為 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