EF Core のツールと拡張機能

これらのツールと拡張機能は、Entity Framework Core の追加機能を提供します。

重要

拡張機能はさまざまなソースから構築されており、Entity Framework Core プロジェクトの一部として保守管理されていません。 サードパーティ拡張機能の利用を検討するとき、要件に合うよう、品質、使用許諾、互換性、サポートなどを必ず評価してください。 特に、古いバージョンの EF Core 用に構築された拡張機能は、最新バージョンで動作させる前に更新が必要になる場合があります。

ツール

EF Core のパワー ツール

EF Core のパワー ツールは、シンプルなユーザー インターフェイスで EF Core デザイン時のさまざまなタスクを公開する 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 の Readme

LLBLGen Pro

LLBLGen Pro は、Entity Framework と Entity Framework Core のサポートを備えたエンティティ モデリング ソリューションです。 これにより、エンティティ モデルを定義し、データベースに Database-First または Model-First を使って簡単にマップできるようになるため、クエリの記述をすぐに始めることができます。 対象の EF Core: 2-8。

Web サイト

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 の範囲。

Web サイト

DevMagic EF Core Sidekick

EF Core Sidekick は、Visual Studio での自動コード生成の機能を強化する Visual Studio 拡張機能です。 既存のデータベースから EF Core エンティティと派生 DbContext を生成して、エンティティからサービスと REST API を生成するための一連のツールとテンプレートが用意されています。 対象の EF Core: 6 から 7。

Visual Studio Marketplace | Web サイト

Entity Framework のビジュアル エディター

Entity Framework のビジュアル エディターは、EF 6 のビジュアル デザインの O/RM デザイナーと EF Core のクラスを追加する、Visual Studio の拡張機能です。 コードは T4 テンプレートを使用して生成されるため、あらゆるニーズに合わせてカスタマイズできます。 継承、一方向および双方向の関連付け、列挙体がサポートされ、クラスの色分けが可能になり、潜在的な設計の難解な部分を説明するテキストのブロックを追加できるようになります。 対象の EF Core: 2-8。

Visual Studio Marketplace

IWAPI

IWAPI (インスタント Web API) は.NET Core のスキャフォールディング エンジンであり、DbContext クラス、エンティティ、モデルの生成を自動化し、任意の SQL Server データベースから動作する Web API を作成できます。

Web サイト

efmig

efmig は、Entity Framework Core を使用する場合に日々の開発を迅速化するマルチプラットフォーム GUI アプリケーションです。 シンプルなワンクリック インターフェイスを使用した移行コードやスクリプトの生成など、最も一般的なユース ケースについて説明します。 対象の EF Core: 2-8。

GitHub リポジトリ

EFCore.Visualizer

Entity Framework Core クエリ プラン デバッガー ビジュアライザーを使用すると、Visual Studio 内で直接、クエリのクエリ プランを表示できます。 現在、ビジュアライザーは SQL Server と PostgreSQL をサポートしています。 対象の EF Core: 7-8。

Visual Studio Marketplace

Extensions

Microsoft.EntityFrameworkCore.AutoHistory

EF Core によって実行されたデータ変更を履歴テーブルに自動的に記録できるプラグイン ライブラリ。 対象の EF Core: 2 から 6 の範囲。

GitHub リポジトリ | NuGet

EFCoreSecondLevelCacheInterceptor

第 2 レベルのキャッシュは、クエリ キャッシュです。 EF コマンドの結果はキャッシュに保存されます。これにより同じ EF コマンドが実行されたときにデータベースからではなくキャッシュからデータが取得されるようになります。 対象の EF Core: 3-8。

GitHub リポジトリ | NuGet

EntityFrameworkCore.Scaffolding.Handlebars

Entity Framework Core ツール チェーンと Handlebars テンプレートを使用して、既存のデータベースからリバース エンジニアリングされたクラスのカスタマイズを可能にします。 対象の EF Core: 2-8。

GitHub リポジトリ | NuGet

NeinLinq.EntityFrameworkCore

NeinLinq は、Entity Framework などの LINQ プロバイダーを拡張し、関数の再利用、クエリの書き直し、変換可能な述語とセレクターを使用した動的クエリの構築などを可能にします。 対象の 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 を使用したスナップショット テストが可能になるように Verify が拡張されます。 対象の 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。

Web サイト | GitHub リポジトリ | NuGet

Entity Framework Extensions

高パフォーマンスの一括操作によって DbContext を拡張します:BulkSaveChanges、BulkInsert、BulkUpdate、BulkDelete、BulkMerge など。 対象の EF Core: 2-8。

Web サイト | NuGet

Expressionify

LINQ ラムダ式で拡張メソッドを呼び出すためのサポートを追加します。 対象の EF Core: 3 から 6。

GitHub リポジトリ | NuGet

EntityLinq

代替えの (MS ベースではない)、リレーショナル データベース用の統合言語クエリ (LINQ) テクノロジ。 それにより、厳密に型指定された SQL クエリを C# を使用して記述できます。 対象の EF Core: 3 から 6。

  • クエリの作成時のラムダ、変数、関数内での複数のステートメントなどの C# の完全なサポート。
  • SQL と意味的な違いはありません。 EntityLinq では SQL ステートメント (SELECTFROMWHERE) を第一級の C# メソッドとして、使い慣れた構文を intellisense、タイプ セーフおよびリファクタリングと組み合わせ宣言します。

その結果、SQL はその API をローカルに公開する、文字どおりの "統合言語 SQL" である "もう 1 つの" クラス ライブラリになります。

Web サイト | NuGet

EFCore.NamingConventions

これにより、snake_case を含むすべてのテーブル名と列名が自動的にすべて大文字またはすべて小文字の名前になります。 対象の EF Core: 3-8。

GitHub リポジトリ | NuGet

EFCore.CheckConstraints

このプラグインを使用すると、いくつかの check 制約を選択できます。これを有効にするだけで、自動的に作成されます。 対象の 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

SQL 式に対する LINQ クエリの代替トランスレーター。 対象の EF Core: 2-8。

CTE、一括コピー、テーブル ヒント、ウィンドウ関数、一時テーブル、データベース側の作成、更新、削除作などの高度な SQL 機能のサポートが含まれています。

GitHub リポジトリ | NuGet

EFCore.SoftDelete

エンティティの論理的な削除のための実装。 対象の EF Core: 3 から 6。

GitHub リポジトリ | NuGet

EntityFrameworkCore.ConfigurationManager

EF Core を拡張して、App.config からの接続文字列を解決します。対象の EF Core: 3-8。

GitHub リポジトリ | NuGet

デタッチされたマッパー

コンポジション/集計処理を含む DTO エンティティ マッパー (GraphDiff に似ています)。 対象の 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 (Graph) コンテンツが生成されます。 DbContext クラスに AsDgml() 拡張メソッドが追加されます。 対象の EF Core: 6 から 7。

GitHub リポジトリ | NuGet

ErikEJ.EntityFrameworkCore.SqlServer.SqlQuery

生の SQL クエリから任意のクラスまたはプリミティブ型のリストを設定するのに役立つ SqlQueryAsync<T> および SqlQueryValueAsync<T> メソッドが用意されています。 対象の EF Core: 6 から 7。

GitHub リポジトリ | NuGet

ErikEJ.EntityFrameworkCore.SqlServer.DateOnlyTimeOnly

EF Core SQL Server プロバイダーで DateOnly および 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 での改ページ位置の自動修正用のライブラリです。 拡張機能として Entity Framework Core で適切に機能し、非同期と同期の両方をサポートします。 また、特に Web 開発でよく使用される便利な機能も多数用意されています。 対象の EF Core: 2 から 7 の範囲。

GitHub リポジトリ | NuGet

Laraue.EfCoreTriggers

後で移行に組み込まれるトリガーを Context.OnModelCreating で宣言するための Fluent API。 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

次のシナリオをより適切にサポートするために、代替 Include 構文を提供する EF Core の拡張機能です。

  • 同じレベルで複数のエンティティを読み込む (兄弟)。
  • 入れ子レベルに依存しない拡張メソッドを記述する。

対象の EF Core: 6 から 7。

GitHub リポジトリ | NuGet

Entity Framework ルーラー

リバース エンジニアリングされたモデルの設計時のカスタマイズを追加します。以下が含まれます。

  • クラス、プロパティ、ナビゲーションの名前付け
  • スキーマ、テーブル、または列のスキャフォールディングをスキップする。
  • プロパティ型のオーバーライド (特に列挙型の場合)。
  • EF6 EDMX のサポートにより、EF6 から EF Core へのスムーズな 3 ステップ アップグレード パスが提供されます。

対象の EF Core: 6 から 8。

GitHub リポジトリ | CLI ツール NuGet | NuGet の設計

LessCode.EFCore.StronglyTypedId

エンティティに対して厳密に型指定された ID クラスを自動的に生成できるソース ジェネレーター。 対象の EF Core: 7。

GitHub リポジトリ

Microsoft.EntityFrameworkCore.DynamicLinq

動的 LINQ ライブラリを使用すると、動的文字列を使用してクエリを実行し、ParseLambda、Parse、CreateClass などのいくつかのユーティリティ メソッドを提供できます。 対象の EF Core: 2-8。

Web サイト | GitHub リポジトリ | NuGet

EfCoreNexus.Framework

EfCoreNexus は、エンティティ フレームワーク コアの blazor アプリへの統合を支援します。 リフレクションにより、エンティティ クラスが自動的に追加され、追加のコードを記述しなくても、基本的な crud 機能が提供されます。

対象の EF Core: 8。

GitHub リポジトリ | NuGet

API 統合

これらのパッケージは、さまざまな API を公開するために、EF Coreに統合するように設計されています。

HotChocolate

任意のリソースの上に独自の GraphQL エンドポイントを構築します。

GitHub リポジトリ | NuGet

GraphQL.EntityFramework

GraphQL に Entity Framework IQueryable サポートを追加します。 対象の 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

Note

SQL Server テンポラル テーブルは、EF Core 6 の EF Core 内で直接サポートされています。

導入された拡張メソッド AsTemporalAll()AsTemporalAsOf(date)AsTemporalFrom(startDate, endDate)AsTemporalBetween(startDate, endDate)AsTemporalContained(startDate, endDate) を使用して、お気に入りのデータベース上で簡単にテンポラル クエリを実行します。 対象の EF Core: 3 から 5。

GitHub リポジトリ | NuGet

EntityFrameworkCore.TemporalTables

Note

SQL Server テンポラル テーブルは、EF Core 6 の EF Core 内で直接サポートされています。

SQL Server を使用している開発者がテンポラル テーブルを簡単に使用できるようにする、Entity Framework Core の拡張ライブラリ。 対象の EF Core: 2 から 5。

GitHub リポジトリ | NuGet

Dabble.EntityFrameworkCore.Temporal.Query

Note

SQL Server テンポラル テーブルは、EF Core 6 の EF Core 内で直接サポートされています。

Microsoft SQL Server テンポラル テーブル クエリをサポートするための Entity Framework Core 3.1 の LINQ 拡張機能。 対象の EF Core:3.

GitHub リポジトリ | NuGet

EntityFrameworkCore.NCache

NCache Entity Framework Core Provider は、クエリの結果をキャッシュする、分散された第 2 レベルのキャッシュ プロバイダーです。 NCache の分散アーキテクチャにより、拡張性と可用性が向上しています。 対象の EF Core: 2 から 3。

Web サイト | NuGet

Ramses

ライフ サイクル フック (SaveChanges 用)。 対象の EF Core: 2 から 3。

GitHub リポジトリ | NuGet