EF Core 拡張機能では、多くの場合、コア EF およびプロバイダー コンポーネントにロジックを追加する必要があります。 これには通常、派生コンポーネントを作成し、内部サービス プロバイダーの元のコンポーネントを置き換える必要があります。 これは、複数の拡張機能が同じコンポーネントを変更する場合に複雑になります。 このような場合は、複数の拡張機能が追加のロジックを提供できるようにプラグイン API を提供します。
サービスのリスト
プラグイン API の一覧を次に示します。
| Service | 説明 |
|---|---|
| ITypeMappingSourcePlugin | .NET 型とプリミティブ ストア型の間にマッピングを追加します。 |
| IRelationalTypeMappingSourcePlugin | .NET 型とプリミティブ リレーショナル データベース型の間にマッピングを追加します。 |
| IConventionSetPlugin | モデル構築規則を追加します。 |
| IMemberTranslatorPlugin | .NET プロパティの SQL 変換を追加します。 |
| IMethodCallTranslatorPlugin | .NET メソッドの SQL 変換を追加します。 |
| IAggregateMethodCallTranslatorPlugin | .NET 列挙可能メソッドの SQL 変換を追加します。 |
| IEvaluatableExpressionFilterPlugin | 特定の式をサーバーで評価することを強制します。 |
| IProviderCodeGeneratorPlugin | スキャフォールディング プロバイダーと DbContext オプション。 |
例示
これらの API を使用する拡張機能をいくつか次に示します。
| 拡張 | 説明 |
|---|---|
| Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite | SpatiaLite の型の型マッピングと SQL 変換を追加します。 |
| Microsoft.EntityFrameworkCore.SqlServer.HierarchyId | SQL Server の hierarchyid 型の型マッピングと SQL 変換を追加します。 |
| Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite | SQL Server の geography 型および geometry 型に対する型マッピングと SQL 変換を追加します。 |
| EFCore.CheckConstraints | リレーショナル データベース チェック制約のモデル構築規則を追加します。 |
| EFCore.NamingConventions | 別のリレーショナル データベース テーブル、列、および制約名のモデル構築規則を追加します。 |
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET