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。
EF Core Power Tools CLI
EF Core Power Tools CLI 是 .NET 全域命令行工具。 它可讓您從現有的資料庫和 SQL Server DACPAC 進行 DbContext 和實體類別的進階反向工程。 適用於 EF Core:6-8。
NuGet (英文)
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-8。
Visual Studio Marketplace | 網站
Entity Framework 視覺效果編輯器
Entity Framework 視覺效果編輯器是 Visual Studio 延伸模組,可為 EF 6 和 EF Core 類別的視覺效果設計新增 O/RM 設計工具。 因為程式碼會透過 T4 範本產生,所以能加以自訂來滿足各種需求。 它支援繼承、單向及雙向關聯、列舉,還能夠對類別進行色彩編碼以及新增文字區塊,以說明設計中可能較不易懂的部分。 適用於 EF Core:2-8。
IWAPI
IWAPI (立即 Web API) 是適用於 .NET Core 的 Scaffolding 引擎,可將 DbCoNtext 類別、實體與模型的產生自動化,並從任何 SQL Server 資料庫建立可運作的 Web API。
efmig
efmig 是多平臺 GUI 應用程式,可在使用 Entity Framework Core 時加速日常開發。 它涵蓋最受歡迎的使用案例,透過簡單的一鍵式介面來產生移轉程式碼和指令碼。 適用於 EF Core:2-8。
EFCore.Visualizer
使用 Entity Framework Core 查詢方案偵錯工具視覺化檢視,您可以直接在 Visual Studio 內檢視查詢的查詢方案。 視覺化檢視目前支援 SQL Server 和 PostgreSQL。 適用於 EF Core:2-8。
擴充
Microsoft.EntityFrameworkCore.AutoHistory
外掛程式庫,能夠自動將 EF Core 執行的資料變更記錄到記錄資料表中。 適用於 EF Core:2-6。
EFCoreSecondLevelCacheInterceptor
第二個層級快取是查詢快取。 EF 命令的結果會存放在快取中,使相同的 EF 命令會從快取擷取其資料,而不必再次向資料庫再次執行命令。 適用於 EF Core:3-8。
EntityFrameworkCore.Scaffolding.Handlebars
可讓您搭配 Handlebars 範本使用 Entity Framework Core 工具鏈,自訂從現有資料庫進行反向工程的類別。 適用於 EF Core:2-8。
NeinLinq.EntityFrameworkCore
NeinLinq 擴充了 LINQ 提供者 (例如 Entity Framework),並提供以下功能:重複使用函式、重寫查詢,以及使用可翻譯的述詞和選取器建置動態查詢。 適用於 EF Core:3-8。
EFCore.BulkExtensions
適用於大量作業 (插入、更新、刪除) 的 EF Core 延伸模組。 適用於 EF Core:2-8。
Bricelam.EntityFrameworkCore.Pluralizer
新增設計階段複數表示。 適用於 EF Core:2-8。
Verify.EntityFramework
延伸驗證以允許使用 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: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。
Expressionify
新增在 LINQ Lambda 中呼叫擴充方法的支援。 適用於 EF Core:3-6。
EntityLinq
關聯式資料庫的替代 (非 MS 型) Language-integrated Query (LINQ) 技術。 其可讓您使用 C# 來撰寫強型別 SQL 查詢。 適用於 EF Core:3-8。
- 查詢建立的完整 C# 支援:Lambda 內部的多個陳述式、變數、函式等。
- 與 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 類型,將原生支援新增至 SQL Server 的 EntityFrameworkCore。 適用於 EF Core:3-8。
EntityFrameworkCore.SqlServer.HierarchyId
注意
自 EF Core 8 起,EF Core 內直接支援 SQL Server hierarchyid 資料類型。
為 SQL Server EF Core 提供者新增 hierarchyid 支援。 適用於 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-8。
已中斷連結的對應工具
具有組合/彙總處理 (類似 GraphDiff) 的DTO-Entity 對應工具。 適用於 EF Core:3-8。
EntityFrameworkCore.Sqlite.NodaTime
新增使用 SQLite 時對 NodaTime 類型的支援。 適用於 EF Core:5-8。
ErikEJ.EntityFrameworkCore.SqlServer.Dacpac
從 SQL Server 資料層應用程式套件 (.dacpac) 啟用 EF Core 模型的反向工程。 適用於 EF Core:6-8。
ErikEJ.EntityFrameworkCore.DgmlBuilder
產生會將您的 DbContext 視覺化的 DGML (圖形) 內容。 將 AsDgml () 擴充方法新增至 DbCoNtext 類別。 適用於 EF Core:6-7。
ErikEJ.EntityFrameworkCore.SqlServer.SqlQuery
注意
從 EF Core 8 起,EF Core 內直接支援針對未對應的類型進行原始 SQL 查詢。
提供 SqlQueryAsync<T>
和 SqlQueryValueAsync<T>
方法,協助您從原始 SQL 查詢填入任意類別或基本類型清單。 適用於 EF Core:6-7。
ErikEJ.EntityFrameworkCore.SqlServer.DateOnlyTimeOnly
注意
自 EF Core 8 起,直接在 EF Core 內支援 SQL Server DateOnly
和 TimeOnly
對應。
搭配 EF Core SQL Server 提供者使用 DateOnly
和 TimeOnly
.NET 類型。 適用於 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
這是 EntityFrameworkCore 上 Pagination 的程式庫。 能以延伸模組形式完美地搭配 Entity Framework Core 運作,而且同時支援非同步與同步。 其也有許多常用的實用功能,特別是在 Web 開發方面。 適用於 EF Core:2-7。
Laraue.EfCoreTriggers
Fluent 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 Ruler
新增反向工程模型的設計時間自訂,包括:
- 類別、屬性和導覽命名
- 略過任何結構描述、資料表或資料行的建構。
- 覆寫屬性類型,特別是列舉。
- EF6 EDMX 支援,提供從 EF6 到 EF Core 的順暢 3 步驟升級路徑。
適用於 EF Core:6-8。
GitHub 存放庫 | CLI 工具 NuGet | 設計 NuGet
LessCode.EFCore.StronglyTypedId
可以自動為實體產生強型別識別碼類別的來源產生器。 適用於 EF Core:7。
Microsoft.EntityFrameworkCore.DynamicLinq
動態 LINQ 程式庫可讓您使用動態字串執行查詢,並提供一些公用程式方法,例如 ParseLambda、Parse 和 CreateClass。 適用於 EF Core:2-8。
網站 | GitHub 存放庫 | NuGet
EfCoreNexus.Framework
EfCoreNexus 可協助將實體架構核心整合到 Blazor 應用程式中。 透過反映,它會自動新增實體類別,並為您提供基本 Crud 功能,而不需撰寫額外的程式碼。
適用於 EF Core:8。
協調器
插入、更新及移除各自的實體,藉此將存放區中的實體圖表更新為指定的圖表。 適用於 EF Core:6-7。
AutoCompute
EF Core 中保存的計算屬性會在儲存變更時自動更新。 適用於 EF Core:8。
API 整合
這些套件的設計旨在直接與 EF Core 整合,以公開各種 API。
.NET Aspire
藉由簡化雲端原生應用程式的設定和互相連線的管理,增強本機開發體驗。 適用於 EF Core:8。
網站 | GitHub 存放庫 | NuGet
HotChocolate
在任何資源之上建置您自己的 GraphQL 端點。
GraphQL.EntityFramework
將 Entity Framework IQueryable
支援新增至 GraphQL。 適用於 EF Core:6-8。
EntityGraphQL
具有緊密 EntityFramework 整合的 GraphQL 伺服器。 適用於 EF Core:5-8。
OData
使用探索、篩選、排序、投影、瀏覽、大量作業等規格實作 REST API 的標準。
不受支援的 EF Core 版本的擴充功能
Entity Framework 的 nHydrate ORM
為 Entity Framework 建立可延伸類別的強型別 O/RM。 產生的程式碼為 Entity Framework Core。 因此兩者沒有任何不同。 這不能取代 EF 或自訂 O/RM。 這是一種視覺化的模型化層,可讓小組管理複雜的資料庫結構描述。 適用於 Git 這類的 SCM 軟體,允許多使用者存取模型,但具有最少的衝突。 安裝程式會追蹤模型變更並建立升級指令碼。 適用於 EF Core:3。
Microsoft.EntityFrameworkCore.UnitOfWork
Microsoft.EntityFrameworkCore 的外掛程式,可支援存放庫、工作模式的單位,以及支援分散式交易的多個資料庫。 適用於 EF Core:2-3。
Toolbelt.EntityFrameworkCore.IndexAttribute
[Index] 屬性的復興 (附有模型組建的延伸模組)。 適用於 EF Core:2-5。
EfCoreTemporalTable
注意
從 EF Core 6 開始,EF Core 內就直接支援 SQL Server 暫存資料表。
使用下列引進的擴充方法,輕鬆地在您慣用的資料庫上執行時態性查詢:AsTemporalAll()
、AsTemporalAsOf(date)
、AsTemporalFrom(startDate, endDate)
、AsTemporalBetween(startDate, endDate)
、AsTemporalContained(startDate, endDate)
。 適用於 EF Core:3-5。
EntityFrameworkCore.TemporalTables
注意
從 EF Core 6 開始,EF Core 內就直接支援 SQL Server 暫存資料表。
Entity Framework Core 的延伸模組程式庫,可讓使用 SQL Server 的開發人員輕鬆地使用時態表。 適用於 EF Core:2-5。
Dabble.EntityFrameworkCore.Temporal.Query
注意
從 EF Core 6 開始,EF Core 內就直接支援 SQL Server 暫存資料表。
Entity Framework Core 3.1 的 LINQ 延伸模組,以支援 Microsoft SQL Server 時態表查詢。 適用於 EF Core:3。
EntityFrameworkCore.NCache
NCache Entity Framework Core Provider 是快取查詢結果的分散式第二層級快取提供者。 NCache 的分散式架構使其更具可擴縮性與高可用性。 適用於 EF Core:2-3。
Ramses
生命週期勾點 (針對 SaveChanges)。 適用於 EF Core:2-3。