EF Core のツールと拡張機能
これらのツールと拡張機能は、Entity Framework Core の追加機能を提供します。
重要
拡張機能はさまざまなソースから構築されており、Entity Framework Core プロジェクトの一部として保守管理されていません。 サードパーティ拡張機能の利用を検討するとき、要件に合うよう、品質、使用許諾、互換性、サポートなどを必ず評価してください。 特に、古いバージョンの EF Core 用に構築された拡張機能は、最新バージョンで動作させる前に更新が必要になる場合があります。
ツール
EF Core のパワー ツール
EF Core のパワー ツールは、シンプルなユーザー インターフェイスで EF Core デザイン時のさまざまなタスクを公開する Visual Studio の拡張機能です。 これには、既存のデータベースと SQL Server DACPAC
EF Core Power Tools CLI
EF Core Power Tools CLI は、.NET グローバル コマンド ライン ツールです。 これにより、既存のデータベース と SQL Server DACPAC からの DbContext およびエンティティ クラスの高度なリバース エンジニアリングが可能になります。 EF Core の場合: 6 から 9。
LLBLGen Pro
LLBLGen Pro は、Entity Framework と Entity Framework Core のサポートを備えたエンティティ モデリング ソリューションです。 これにより、エンティティ モデルを定義し、データベースに Database-First または Model-First を使って簡単にマップできるようになるため、クエリの記述をすぐに始めることができます。 対象の EF Core: 2-8。
Devart Entity Developer
Entity Developer は ADO.NET Entity Framework、NHibernate、LinqConnect、Telerik Data Access、LINQ to SQL 用の強力な O/RM デザイナーです。 モデル ファーストまたはデータベース ファーストのアプローチを使用した EF Core モデルの視覚的なデザイン、そして C# または Visual Basic のコード生成をサポートします。 対象の 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 | Web サイト
Entity Framework のビジュアル エディター
Entity Framework のビジュアル エディターは、EF 6 のビジュアル デザインの O/RM デザイナーと EF Core のクラスを追加する、Visual Studio の拡張機能です。 コードは T4 テンプレートを使用して生成されるため、あらゆるニーズに合わせてカスタマイズできます。 継承、一方向および双方向の関連付け、列挙体がサポートされ、クラスの色分けが可能になり、潜在的な設計の難解な部分を説明するテキストのブロックを追加できるようになります。 対象の EF Core: 2-8。
IWAPI
IWAPI (インスタント Web API) は.NET Core のスキャフォールディング エンジンであり、DbContext クラス、エンティティ、モデルの生成を自動化し、任意の SQL Server データベースから動作する Web API を作成できます。
efmig
efmig は、Entity Framework Core を使用する場合に日々の開発を迅速化するマルチプラットフォーム GUI アプリケーションです。 シンプルなワンクリック インターフェイスを使用した移行コードやスクリプトの生成など、最も一般的なユース ケースについて説明します。 対象の EF Core: 2-8。
EFCore.Visualizer
Entity Framework Core クエリ プラン デバッガー ビジュアライザーを使用すると、Visual Studio 内で直接、クエリのクエリ プランを表示できます。 現在、ビジュアライザーは SQL Server と PostgreSQL をサポートしています。 対象の EF Core: 7 から 8。
Extensions
Microsoft.EntityFrameworkCore.AutoHistory
EF Core によって実行されたデータ変更を履歴テーブルに自動的に記録できるプラグイン ライブラリ。 対象の EF Core: 2 から 6 の範囲。
EFCoreSecondLevelCacheInterceptor
第 2 レベルのキャッシュは、クエリ キャッシュです。 EF コマンドの結果はキャッシュに保存されます。これにより同じ EF コマンドが実行されたときにデータベースからではなくキャッシュからデータが取得されるようになります。 対象の EF Core: 3-8。
EntityFrameworkCore.Scaffolding.Handlebars
Entity Framework Core ツール チェーンと Handlebars テンプレートを使用して、既存のデータベースからリバース エンジニアリングされたクラスのカスタマイズを可能にします。 対象の EF Core: 2-8。
NeinLinq.EntityFrameworkCore
NeinLinq は、Entity Framework などの LINQ プロバイダーを拡張し、関数の再利用、クエリの書き直し、変換可能な述語とセレクターを使用した動的クエリの構築などを可能にします。 対象の EF Core: 3-8。
EFCore.BulkExtensions
一括操作 (挿入、更新、削除) の EF Core 拡張機能。 対象の EF Core: 2-8。
Bricelam.EntityFrameworkCore.Pluralizer
デザイン時の複数形化を追加します。 EF Core の場合: 2 から 9。
Verify.EntityFramework
Entity Framework を使用したスナップショット テストが可能になるように Verify が拡張されます。 対象の 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。
Web サイト | GitHub リポジトリ | NuGet
Entity Framework Extensions
高パフォーマンスの一括操作によって DbContext を拡張します:BulkSaveChanges、BulkInsert、BulkUpdate、BulkDelete、BulkMerge など。 対象の EF Core: 2-8。
Expressionify
LINQ ラムダ式で拡張メソッドを呼び出すためのサポートを追加します。 対象の EF Core: 3 から 6。
EntityLinq
代替えの (MS ベースではない)、リレーショナル データベース用の統合言語クエリ (LINQ) テクノロジ。 それにより、厳密に型指定された SQL クエリを C# を使用して記述できます。 対象の EF Core: 3-8。
- クエリの作成時のラムダ、変数、関数内での複数のステートメントなどの C# の完全なサポート。
- SQL と意味的な違いはありません。 EntityLinq では SQL ステートメント (
SELECT
、FROM
、WHERE
) を第一級の C# メソッドとして、使い慣れた構文を intellisense、タイプ セーフおよびリファクタリングと組み合わせ宣言します。
その結果、SQL はその API をローカルに公開する、文字どおりの "統合言語 SQL" である "もう 1 つの" クラス ライブラリになります。
EFCore.NamingConventions
これにより、snake_case を含むすべてのテーブル名と列名が自動的にすべて大文字またはすべて小文字の名前になります。 対象の EF Core: 3-8。
EFCore.CheckConstraints
このプラグインを使用すると、いくつかの check 制約を選択できます。これを有効にするだけで、自動的に作成されます。 EF Core の場合: 5 から 9。
SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime
NodaTime の SQL Server 用 EntityFrameworkCore にネイティブ サポートを追加します。 EF Core の場合: 3 から 9。
EntityFrameworkCore.SqlServer.HierarchyId
Note
SQL Server 階層データ型は、EF Core 8 の EF Core 内で直接サポートされています。
SQL Server EF Core プロバイダーに hierarchyid のサポートを追加します。 対象の EF Core: 3 から 7 の範囲。
linq2db.EntityFrameworkCore
SQL 式に対する LINQ クエリの代替トランスレーター。 対象の EF Core: 2-8。
CTE、一括コピー、テーブル ヒント、ウィンドウ関数、一時テーブル、データベース側の作成、更新、削除作などの高度な SQL 機能のサポートが含まれています。
EFCore.SoftDelete
エンティティの論理的な削除のための実装。 対象の EF Core: 3 から 6。
EntityFrameworkCore.ConfigurationManager
APP.config から接続文字列を解決するように EF Core を拡張します。EF Core の場合: 3 から 9。
デタッチされたマッパー
コンポジション/集計処理を含む DTO エンティティ マッパー (GraphDiff に似ています)。 対象の 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 から 9。
ErikEJ.EntityFrameworkCore.DgmlBuilder
DbContext を視覚化する DGML (Graph) コンテンツが生成されます。 DbContext クラスに AsDgml() 拡張メソッドが追加されます。 EF Core の場合: 6 から 9。
ErikEJ.EntityFrameworkCore.SqlServer.SqlQuery
Note
マップ解除された型に対する生 SQL クエリは、EF Core 8 の EF Core 内で直接サポートされています。
生の SQL クエリから任意のクラスまたはプリミティブ型のリストを設定するのに役立つ SqlQueryAsync<T>
および SqlQueryValueAsync<T>
メソッドが用意されています。 対象の EF Core: 6 から 7。
ErikEJ.EntityFrameworkCore.SqlServer.DateOnlyTimeOnly
Note
SQL Server DateOnly
と TimeOnly
のマッピングは、EF Core 8 の EF Core 内で直接サポートされています。
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 での改ページ位置の自動修正用のライブラリです。 拡張機能として Entity Framework Core で適切に機能し、非同期と同期の両方をサポートします。 また、特に Web 開発でよく使用される便利な機能も多数用意されています。 対象の EF Core: 2 から 7 の範囲。
Laraue.EfCoreTriggers
後で移行に組み込まれるトリガーを Context.OnModelCreating
で宣言するための Fluent API。 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
次のシナリオをより適切にサポートするために、代替 Include
構文を提供する EF Core の拡張機能です。
- 同じレベルで複数のエンティティを読み込む (兄弟)。
- 入れ子レベルに依存しない拡張メソッドを記述する。
対象の EF Core: 6 から 7。
Entity Framework ルーラー
リバース エンジニアリングされたモデルの設計時のカスタマイズを追加します。以下が含まれます。
- クラス、プロパティ、ナビゲーションの名前付け
- スキーマ、テーブル、または列のスキャフォールディングをスキップする。
- プロパティ型のオーバーライド (特に列挙型の場合)。
- EF6 EDMX のサポートにより、EF6 から EF Core へのスムーズな 3 ステップ アップグレード パスが提供されます。
対象の EF Core: 6 から 8。
GitHub リポジトリ | CLI ツール NuGet | NuGet の設計
LessCode.EFCore.StronglyTypedId
エンティティに対して厳密に型指定された ID クラスを自動的に生成できるソース ジェネレーター。 対象の EF Core: 7。
Microsoft.EntityFrameworkCore.DynamicLinq
動的 LINQ ライブラリを使用すると、動的文字列を使用してクエリを実行し、ParseLambda、Parse、CreateClass などのいくつかのユーティリティ メソッドを提供できます。 対象の EF Core: 2-8。
Web サイト | GitHub リポジトリ | NuGet
EfCoreNexus.Framework
EfCoreNexus は、エンティティ フレームワーク コアの blazor アプリへの統合を支援します。 リフレクションにより、エンティティ クラスが自動的に追加され、追加のコードを記述しなくても、基本的な crud 機能が提供されます。
対象の EF Core: 8。
調整
それぞれのエンティティを挿入、更新、および削除することにより、ストア内のエンティティ グラフを更新します。 対象の EF Core: 6 から 7。
AutoCompute
保存の変更時に自動的に更新される EF Core の永続化された計算プロパティ。 対象の EF Core: 8。
API 統合
これらのパッケージは、さまざまな API を公開するために、EF Coreに統合するように設計されています。
.NET Aspire
クラウドネイティブ アプリの構成と相互接続の管理を簡素化することで、ローカル開発エクスペリエンスを向上させます。 対象の EF Core: 8。
Web サイト | GitHub リポジトリ | NuGet
HotChocolate
任意のリソースの上に独自の GraphQL エンドポイントを構築します。
GraphQL.EntityFramework
GraphQL に Entity Framework IQueryable
サポートを追加します。 対象の 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
Note
SQL Server テンポラル テーブルは、EF Core 6 の EF Core 内で直接サポートされています。
導入された拡張メソッド AsTemporalAll()
、AsTemporalAsOf(date)
、AsTemporalFrom(startDate, endDate)
、AsTemporalBetween(startDate, endDate)
、AsTemporalContained(startDate, endDate)
を使用して、お気に入りのデータベース上で簡単にテンポラル クエリを実行します。 対象の EF Core: 3 から 5。
EntityFrameworkCore.TemporalTables
Note
SQL Server テンポラル テーブルは、EF Core 6 の EF Core 内で直接サポートされています。
SQL Server を使用している開発者がテンポラル テーブルを簡単に使用できるようにする、Entity Framework Core の拡張ライブラリ。 対象の EF Core: 2 から 5。
Dabble.EntityFrameworkCore.Temporal.Query
Note
SQL Server テンポラル テーブルは、EF Core 6 の EF Core 内で直接サポートされています。
Microsoft SQL Server テンポラル テーブル クエリをサポートするための Entity Framework Core 3.1 の LINQ 拡張機能。 対象の EF Core:3.
EntityFrameworkCore.NCache
NCache Entity Framework Core Provider は、クエリの結果をキャッシュする、分散された第 2 レベルのキャッシュ プロバイダーです。 NCache の分散アーキテクチャにより、拡張性と可用性が向上しています。 対象の EF Core: 2 から 3。
Ramses
ライフ サイクル フック (SaveChanges 用)。 対象の EF Core: 2 から 3。
.NET