EF Core 工具 & 延伸模組

這些工具和延伸模組可為 Entity Framework Core 2.1 及更新版本提供額外的功能。

重要

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

工具

LLBLGen Pro

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

網站

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、3、5。

網站

Entity Framework 的 nHydrate ORM

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

Github 存放庫

EF Core Power Tools

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

GitHub Wiki

Entity Framework 視覺效果編輯器

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

Marketplace \(英文\)

CatFactory

CatFactory 是 .NET Core 的 Scaffolding 引擎,可以自動從 SQL Server 資料庫產生 DbContext 類別、實體、對應組態及存放庫類別。 適用於 EF Core:2.

GitHub 存放庫

LoreSoft 的 Entity Framework Core Generator

Entity Framework Core 產生器 (efg) 是 .NET Core CLI 工具,可以從現有資料庫產生 EF Core 模型,與 dotnet ef dbcontext scaffold 十分相似,但它也透過區域取代或剖析對應檔案,支援安全的程式碼重新產生。 這項工具也支援產生檢視模型、驗證及物件對應程式程式碼。 適用於 EF Core:2.

教學課程 | 文件

Geco

Geco (產生器主控台) 是以主控台專案為基礎的簡單程式碼產生器,在 .NET Core 上執行,並使用插入 C# 的字串產生程式碼。 Geco 包括適用於 EF Core 的反向模型產生器,支援複數、單數和可編輯範本。 它也提供種子資料指令碼產生器、指令碼執行器和資料庫清除工具。 適用於 EF Core:2.

GitHub 存放庫

IWAPI

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

網站

延伸模組

Microsoft.EntityFrameworkCore.AutoHistory

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

GitHub存放庫 | NuGet

EFCoreSecondLevelCacheInterceptor

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

GitHub存放庫 | NuGet

EntityFrameworkCore.Scaffolding.Handlebars

允許使用具有 Handlebars 範本的 Entity Framework Core 工具鏈,從現有資料庫反向工程的類別自訂。 針對 EF Core:2、3、5。

GitHub存放庫 | NuGet

NeinLinq.EntityFrameworkCore

NeinLinq 擴充了 LINQ 提供者 (例如 Entity Framework),並提供以下功能:重複使用函式、重寫查詢,以及使用可翻譯的述詞和選取器建置動態查詢。 針對 EF Core:2、3、5。

GitHub存放庫 | NuGet

Microsoft.EntityFrameworkCore.UnitOfWork

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

GitHub 存放庫

EFCore.BulkExtensions

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

GitHub存放庫 | NuGet

Bricelam.EntityFrameworkCore.Pluralizer

新增設計階段複數表示。 針對 EF Core:2、3、5、6。

GitHub存放庫 | NuGet

Toolbelt.EntityFrameworkCore.IndexAttribute

[Index] 屬性的復興 (附有模型組建的延伸模組)。 針對 EF Core:2、3、5。

GitHub存放庫 | NuGet

Verify.EntityFramework

擴充 驗證 以允許使用 Entity Framework 進行快照集測試。 針對 EF Core:3、5。

GitHub存放庫 | NuGet

LocalDb

提供SQL Server Express LocalDB的包裝函式,以簡化對 Entity Framework 的執行測試。 針對 EF Core:3、5。

GitHub存放庫 | NuGet

EFCore.TemporalSupport

時態性支援的實作。 適用於 EF Core:2.

GitHub存放庫 | NuGet

EfCoreTemporalTable

注意

EF Core 6起,SQL Server EF Core 內直接支援時態表。

使用引進的擴充方法,輕鬆地對慣用的資料庫執行時態查詢: AsTemporalAll() 、、 AsTemporalAsOf(date)AsTemporalFrom(startDate, endDate)AsTemporalContained(startDate, endDate)AsTemporalBetween(startDate, endDate) 。 針對 EF Core:3、5。

GitHub存放庫 | NuGet

EntityFrameworkCore.TemporalTables

注意

EF Core 6起,SQL Server EF Core 內直接支援時態表。

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

GitHub存放庫 | NuGet

EntityFrameworkCore.Cacheable

高效能第二層查詢快取。 適用於 EF Core:2.

GitHub存放庫 | NuGet

EntityFrameworkCore.NCache

NCache Entity Framework Core Provider 是快取查詢結果的分散式第二層級快取提供者。 NCache 的分散式架構使其更具可擴縮性與高可用性。 適用於 EF Core:2、3。

網站 | NuGet

EntityFrameworkCore.Projectables

EF Core 的彈性投影魔術。 在查詢中使用屬性、方法和擴充方法,而不需評估用戶端。 針對 EF Core:3、5、6。

GitHub存放庫 | NuGet

EntityFrameworkCore.Triggered

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

GitHub存放庫 | NuGet

Entity Framework Plus

使用下功能延伸您的 DbContext:包括篩選、稽核、快取、查詢未來、批次刪除、批次更新等。 針對 EF Core:2、3、5。

GitHub存放庫 | NuGet

Entity Framework 擴充功能

使用高效能批次作業延伸您的 DbContext:BulkSaveChanges、BulkInsert、BulkUpdate、BulkDelete、BulkMerge 等。 針對 EF Core:2、3、5。

網站 | NuGet

Expressionify

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

GitHub存放庫 | NuGet

EntityLinq

替代 (不是 MS 型) 語言整合式查詢 (關係資料庫的 LINQ) 技術。 它可讓您使用 C# 撰寫強型別SQL查詢。 針對 EF Core:3、5、6。

  • 查詢建立的完整 C# 支援:Lambda 內部的多個陳述式、變數、函式等。
  • 與 SQL 沒有語意隔閡。 EntityLinq 宣告SQL語句 (,例如 SELECTFROM) WHERE 做為第一類 C# 方法,結合熟悉的語法與 intellisense、型別安全性和重構。

因此,SQL 會變成在本機公開其 API 的「另一個」類別庫,實際上就是「整合語言的 SQL」 。

網站 | NuGet

Ramses

SaveChanges) 的生命週期勾點 (。 適用於 EF Core:2、3。

GitHub存放庫 | NuGet

EFCore.NamingConventions

這會自動使所有資料表與資料行名稱採用全為大寫或小寫字母,並以底線作為空格的格式。 針對 EF Core:3、5、6。

GitHub存放庫 | NuGet

EFCore.CheckConstraints

此外掛程式可讓您加入宣告一些檢查條件約束- 只要啟用它,系統就會為您自動建立它們。 針對 EF Core:5、6。

GitHub存放庫 | NuGet

SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime

針對 NodaTime 類型,將原生支援新增至 SQL Server 的 EntityFrameworkCore。 針對 EF Core:3、5、6。

GitHub存放庫 | NuGet

Dabble.EntityFrameworkCore.Temporal.Query

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

GitHub存放庫 | NuGet

EntityFrameworkCore.SqlServer.HierarchyId

為 SQL Server EF Core 提供者新增 hierarchyid 支援。 針對 EF Core:3、5、6。

GitHub存放庫 | NuGet

linq2db.EntityFrameworkCore

將 LINQ 查詢轉換為 SQL 運算式的替代轉譯程式。 針對 EF Core:2、3、5、6。

包括對進階 SQL 功能的支援,例如 CTE、大量複製、資料表提示、視窗型函式、暫存資料表,以及資料庫端的建立/更新/刪除作業。

GitHub存放庫 | NuGet

EFCore.SoftDelete

虛刪除實體的實作。 針對 EF Core:3、5、6。

GitHub存放庫 | NuGet

EntityFrameworkCore.ConfigurationManager

擴充 EF Core 以從 App.config解析連接字串。針對 EF Core:3、5、6。

GitHub存放庫 | NuGet

中斷連結的對應程式

具有組合/匯總處理 (類似 GraphDiff) 的DTO-Entity對應程式。 針對 EF Core:3、5。

GitHub存放庫 | NuGet

EntityFrameworkCore.Sqlite.NodaTime

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

GitHub存放庫 | NuGet

ErikEJ.EntityFrameworkCore.SqlServer.Dacpac

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

GitHub wiki | NuGet

ErikEJ.EntityFrameworkCore.DgmlBuilder

產生 DGML (Graph) 視覺化 DbCoNtext 的內容。 將 AsDgml () 擴充方法新增至 DbCoNtext 類別。 針對 EF Core:3、5。

GitHub wiki | NuGet

ErikEJ.EntityFrameworkCore.SqlServer.SqlQuery

SqlQueryAsync<T>提供 和 SqlQueryValueAsync<T> 方法,協助您從原始SQL查詢填入任意類別或基本類型清單。 針對 EF Core:5。

GitHub存放庫 | NuGet

EntityFramework.Exceptions

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

支援SQL Server、Postgres、MySql、SQLite 和 Oracle。 針對 EF Core:3、5。

GitHub 存放庫

EFCoreAuditing

Entity Framework Core 程式庫,可支援自動記錄資料變更歷程記錄, (稽核記錄) 、虛刪除和snake_case命名慣例功能。 適用於 EF Core:2.

GitHub存放庫 | NuGet

EntityFrameworkCore.FSharp

將 F# 設計階段支援新增至 EF Core。 針對 EF Core:5。

GitHub存放庫 | NuGet

EntityFrameworkCore.VisualBasic

將 VB 設計階段支援新增至 EF Core。 針對 EF Core:5、6。

GitHub存放庫 | NuGet

Krzysztofz01.EFCore.QueryFilterBuilder

Entity Framework 的擴充功能,可讓您建立和管理多個查詢篩選準則。 針對 EF Core:5。

GitHub 存放庫

Pagination.EntityFrameworkCore.Extensions

這是 EntityFrameworkCore 上的分頁程式庫。 搭配 Entity Framework Core 做為延伸模組運作良好,且同時支援非同步和同步。 它也有許多常用的實用功能,特別是用於 Web 開發。 針對 EF Core:2、3、5。

GitHub存放庫 | NuGet

Laraue.EfCoreTriggers

Fluent API 宣告稍後內建移轉的觸發 Context.OnModelCreating 程式。 Postgres、MySQL、SQL Server 和 SQLite 的提供者。 針對 EF Core:5、6。

GitHub存放庫 | NuGet

EntityCloner.Microsoft.EntityFrameworkCore

使用 EF Core 組態複製實體。 您可以使用 Include 方法來指定要複製的相關資料。 針對 EF Core:5、6。

GitHub存放庫 | NuGet

API 整合

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

HotChocolate

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

GitHub存放庫 | NuGet

GraphQL.EntityFramework

將 Entity Framework IQueryable 支援新增至 GraphQL。

GitHub存放庫 | NuGet

OData

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

GitHub存放庫 | NuGet