EF Core 工具和延伸模組
這些工具和延伸模組提供 Entity Framework Core 的其他功能。
重要事項
延伸模組以各種來源建置而成,且不屬於 Entity Framework Core 專案維護的一部份。 考慮使用協力廠商延伸模組時,請務必評估其品質、授權、相容性、支援等,確保其符合您的需求。 特別是針對舊版 EF Core 所建置的延伸模組,可能需要予以更新,才能搭配最新版本使用。
工具
LLBLGen Pro
LLBLGen Pro 是實體模型化解決方案,具備 Entity Framework 與 Entity Framework Core 的支援。 您可加以利用來輕鬆定義實體模型,並將其對應至資料庫,優先使用資料庫或模型後,即可開始直接撰寫查詢。 適用於 EF Core:2、3、5、6。
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、3、5、6。
Entity Framework 的 nHydrate ORM
為 Entity Framework 建立可延伸類別的強型別 O/RM。 產生的程式碼為 Entity Framework Core。 因此兩者沒有任何不同。 這不能取代 EF 或自訂 O/RM。 這是一種視覺化的模型化層,可讓小組管理複雜的資料庫結構描述。 適用於 Git 這類的 SCM 軟體,允許多使用者存取模型,但具有最少的衝突。 安裝程式會追蹤模型變更並建立升級指令碼。 適用於 EF Core:3.
EF Core Power Tools
EF Core Power Tools 是 Visual Studio 延伸模組,在簡單使用者介面中公開各種設計階段工作。 包括現有資料庫和 SQL Server DACPAC 之 DbContext 及實體類別的反向工程、資料庫移轉的管理,以及模型視覺效果。 針對 EF Core:3、6、7。
Entity Framework 視覺效果編輯器
Entity Framework 視覺效果編輯器是 Visual Studio 延伸模組,可為 EF 6 和 EF Core 類別的視覺效果設計新增 O/RM 設計工具。 因為程式碼會透過 T4 範本產生,所以能加以自訂來滿足各種需求。 它支援繼承、單向及雙向關聯、列舉,還能夠對類別進行色彩編碼以及新增文字區塊,以說明設計中可能較不易懂的部分。 適用於 EF Core:2、3、5、6、7。
Marketplace \(英文\)
IWAPI
IWAPI (立即 Web API) 是適用於 .NET Core 的 Scaffolding 引擎,可將 DbCoNtext 類別、實體與模型的產生自動化,並從任何 SQL Server 資料庫建立可運作的 Web API。
延伸模組
Microsoft.EntityFrameworkCore.AutoHistory
外掛程式庫,能夠自動將 EF Core 執行的資料變更記錄到記錄資料表中。 適用於 EF Core:2、3、5。
EFCoreSecondLevelCacheInterceptor
第二個層級快取是查詢快取。 EF 命令的結果會存放在快取中,使相同的 EF 命令會從快取擷取其資料,而不必再次向資料庫再次執行命令。 適用於 EF Core:3、5。
EntityFrameworkCore.Scaffolding.Handlebars
可讓您搭配 Handlebars 範本使用 Entity Framework Core 工具鏈,自訂從現有資料庫進行反向工程的類別。 適用於 EF Core:2、3、5、6。
NeinLinq.EntityFrameworkCore
NeinLinq 擴充了 LINQ 提供者 (例如 Entity Framework),並提供以下功能:重複使用函式、重寫查詢,以及使用可翻譯的述詞和選取器建置動態查詢。 適用於 EF Core:2、3、5、6、7。
Microsoft.EntityFrameworkCore.UnitOfWork
Microsoft.EntityFrameworkCore 的外掛程式,可支援存放庫、工作模式的單位,以及支援分散式交易的多個資料庫。 適用於 EF Core:2、3。
EFCore.BulkExtensions
適用於大量作業 (插入、更新、刪除) 的 EF Core 延伸模組。 適用於 EF Core:2、3、5、6。
Bricelam.EntityFrameworkCore.Pluralizer
新增設計階段複數表示。 適用於 EF Core:2、3、5、6、7。
Toolbelt.EntityFrameworkCore.IndexAttribute
[Index] 屬性的復興 (附有模型組建的延伸模組)。 適用於 EF Core:2、3、5。
Verify.EntityFramework
延伸驗證以允許使用 Entity Framework 進行快照集測試。 針對 EF Core:3、5、6、7。
LocalDb
提供 SQL Server Express LocalDB 的包裝函式,以簡化針對 Entity Framework 執行測試的作業。 針對 EF Core:3、5、6、7。
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、3、5。
EntityFrameworkCore.NCache
NCache Entity Framework Core Provider 是快取查詢結果的分散式第二層級快取提供者。 NCache 的分散式架構使其更具可擴縮性與高可用性。 適用於 EF Core:2、3。
EntityFrameworkCore.Projectables
適用於 EF Core 的彈性投影魔術。 在查詢中使用屬性、方法和擴充方法,而不需用戶端評估。 適用於 EF Core:3、5、6。
EntityFrameworkCore.Triggered
EF Core 的觸發程序。 在 DbCoNtext 變更認可至資料庫之前和之後,回應那些變更。 觸發程序是完全非同步的,而且支援相依性插入、繼承、串聯等等。 適用於 EF Core:3、5、6。
Entity Framework Plus
使用下功能延伸您的 DbContext:包括篩選、稽核、快取、查詢未來、批次刪除、批次更新等。 適用於 EF Core:2、3、5、6、7。
網站 | GitHub 存放庫 | NuGet
Entity Framework 擴充功能
使用高效能批次作業延伸您的 DbContext:BulkSaveChanges、BulkInsert、BulkUpdate、BulkDelete、BulkMerge 等。 適用於 EF Core:2、3、5、6、7。
Expressionify
新增在 LINQ Lambda 中呼叫擴充方法的支援。 適用於 EF Core:3、5、6。
EntityLinq
關聯式資料庫的替代 (非 MS 型) Language-integrated Query (LINQ) 技術。 其可讓您使用 C# 來撰寫強型別 SQL 查詢。 適用於 EF Core:3、5、6。
- 查詢建立的完整 C# 支援:Lambda 內部的多個陳述式、變數、函式等。
- 與 SQL 沒有語意隔閡。 EntityLinq 會將 SQL 陳述式 (例如
SELECT
、FROM
、WHERE
) 宣告為第一級 C# 方法,以結合熟悉的語法與 IntelliSense、型別安全和重構。
因此,SQL 會變成在本機公開其 API 的「另一個」類別庫,實際上就是「整合語言的 SQL」 。
Ramses
生命週期勾點 (針對 SaveChanges)。 適用於 EF Core:2、3。
EFCore.NamingConventions
這會自動使所有資料表與資料行名稱採用全為大寫或小寫字母,並以底線作為空格的格式。 針對 EF Core:3、5、6、7。
EFCore.CheckConstraints
此外掛程式可讓您選擇加入一些檢查條件約束 - 只要加以啟用,系統就會自動為您建立。 針對 EF Core:5、6、7。
SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime
針對 NodaTime 類型,將原生支援新增至 SQL Server 的 EntityFrameworkCore。 針對 EF Core:3、5、6、7。
Dabble.EntityFrameworkCore.Temporal.Query
注意
從 EF Core 6 開始,EF Core 內就直接支援 SQL Server 暫存資料表。
Entity Framework Core 3.1 的 LINQ 延伸模組,以支援 Microsoft SQL Server 時態表查詢。 適用於 EF Core:3.
EntityFrameworkCore.SqlServer.HierarchyId
為 SQL Server EF Core 提供者新增 hierarchyid 支援。 針對 EF Core:3、5、6、7。
linq2db.EntityFrameworkCore
將 LINQ 查詢轉換為 SQL 運算式的替代轉譯程式。 適用於 EF Core:2、3、5、6、7。
包括對進階 SQL 功能的支援,例如 CTE、大量複製、資料表提示、視窗型函式、暫存資料表,以及資料庫端的建立/更新/刪除作業。
EFCore.SoftDelete
虛刪除實體的實作。 適用於 EF Core:3、5、6。
EntityFrameworkCore.ConfigurationManager
擴充 EF Core,從 App.config 解析連接字串。針對 EF Core:3、5、6、7。
已中斷連結的對應工具
具有組合/彙總處理 (類似 GraphDiff) 的DTO-Entity 對應工具。 適用於 EF Core:3、5、6。
EntityFrameworkCore.Sqlite.NodaTime
新增使用 SQLite 時對 NodaTime 類型的支援。 針對 EF Core:5、6、7。
ErikEJ.EntityFrameworkCore.SqlServer.Dacpac
從 SQL Server 資料層應用程式套件 (.dacpac) 啟用 EF Core 模型的反向工程。 針對 EF Core:3、6、7。
ErikEJ.EntityFrameworkCore.DgmlBuilder
產生會將您的 DbContext 視覺化的 DGML (圖形) 內容。 將 AsDgml () 擴充方法新增至 DbCoNtext 類別。 針對 EF Core:3、6、7。
ErikEJ.EntityFrameworkCore.SqlServer.SqlQuery
提供 SqlQueryAsync<T>
和 SqlQueryValueAsync<T>
方法,協助您從原始 SQL 查詢填入任意類別或基本類型清單。 適用於 EF Core:6、7。
ErikEJ.EntityFrameworkCore.SqlServer.DateOnlyTimeOnly
搭配 DateOnly
EF Core SQL Server 提供者使用 和 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、5、6。
EntityFrameworkCore.FSharp
新增 F# 設計階段支援到 EF Core。 適用於 EF Core:5、6。
EntityFrameworkCore.VisualBasic
新增 VB 設計階段支援到 EF Core。 針對 EF Core:5、6、7。
Krzysztofz01.EFCore.QueryFilterBuilder
Entity Framework 的擴充功能,可讓您建立並管理多個查詢篩選條件。 適用於 EF Core:5、6。
Pagination.EntityFrameworkCore.Extensions
這是 EntityFrameworkCore 上 Pagination 的程式庫。 能以延伸模組形式完美地搭配 Entity Framework Core 運作,而且同時支援非同步與同步。 其也有許多常用的實用功能,特別是在 Web 開發方面。 適用於 EF Core:2、3、5。
Laraue.EfCoreTriggers
Fluent API 可宣告 Context.OnModelCreating
中的觸發程序,其稍後會建置到移轉中。 Postgres、MySQL、SQL Server 與 SQLite 的提供者。 適用於 EF Core:5、6。
EntityCloner.Microsoft.EntityFrameworkCore
使用 EF Core 設定複製實體。 您可以使用 Include
方法來指定要包複製的相關資料。 針對 EF Core:5、6、7。
Zomp EF Core 延伸模組
提供 EF Core 的視窗 (分析) 函式和二進位函式。 提供者:SQL Server、SQLite、PostgreSQL。 適用於 EF Core:6、7。
Ainoraz.EFCore.IncludeBuilder
EF Core 的延伸模組,可提供替代的 Include
語法,以便為下列案例提供更好的支援:
- 載入多個層級相同的實體 (同層級)。
- 撰寫與巢狀層級無關的擴充方法。
適用於 EF Core:6。
Entity Framework 尺規
新增反向工程模型的設計階段自訂,包括:
- 類別、屬性和導覽命名
- 略過任何架構、資料表或資料行的 Scaffolding。
- 覆寫屬性類型,特別是列舉。
- EF6 EDMX 支援,提供從 EF6 到 EF Core 的順暢 3 步驟升級路徑。
適用於 EF Core:6、7。
GitHub 存放庫 | CLI 工具 NuGet | 設計 NuGet
LessCode.EFCore.StronglyTypedId
來源產生器,可自動為實體產生強型別識別碼類別。 針對 EF Core:7。
Microsoft.EntityFrameworkCore.DynamicLinq
動態 LINQ 程式庫可讓您使用動態字串執行查詢,並提供一些公用程式方法,例如 ParseLambda、Parse 和 CreateClass。 適用於 EF Core:2、3、5、6、7。
網站 | GitHub 存放庫 | NuGet
API 整合
這些套件的設計旨在直接與 EF Core 整合,以公開各種 API。
HotChocolate
在任何資源之上建置您自己的 GraphQL 端點。
GraphQL.EntityFramework
將 Entity Framework IQueryable
支援新增至 GraphQL。
EntityGraphQL
具有緊密 EntityFramework 整合的 GraphQL 伺服器。 針對 EF Core:5、6、7。
OData
使用探索、篩選、排序、投影、瀏覽、大量作業等規格實作 REST API 的標準。