API подключаемых модулей

Расширения EF Core часто требуют добавления логики в основные компоненты EF и компоненты поставщика. Обычно это требует создания производного компонента и замены исходного компонента во внутреннем поставщике услуг. Это усложняется, если несколько расширений хотят изменить один и тот же компонент. В таких случаях мы предоставляем API для плагинов, чтобы позволить нескольким расширениям обеспечивать дополнительную логику.

Перечень услуг

Ниже приведен список API подключаемых модулей.

Услуга Описание
ITypeMappingSourcePlugin Добавляет сопоставления между типами .NET и типами примитивного хранилища.
IRelationalTypeMappingSourcePlugin Добавляет сопоставления между типами .NET и примитивными реляционными типами баз данных.
IConventionSetPlugin Добавляет правила построения моделей.
IMemberTranslatorPlugin Добавляет переводы SQL для свойств .NET.
IMethodCallTranslatorPlugin Добавляет переводы SQL для методов .NET.
IAggregateMethodCallTranslatorPlugin Добавляет переводы SQL для перечисленных методов .NET.
IEvaluatableExpressionFilterPlugin Принудительно выполняет серверную оценку для некоторых выражений.
IProviderCodeGeneratorPlugin Параметры поставщика шаблонов и DbContext.

Примеры

Ниже приведены некоторые расширения, использующие эти API:

Расширение Описание
Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite Добавляет сопоставления типов и преобразования SQL для типов SpatiaLite.
Microsoft.EntityFrameworkCore.SqlServer.HierarchyId Добавляет сопоставления типов и преобразования SQL для типа hierarchyid в SQL Server.
Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite Добавляет сопоставления типов и преобразования SQL для географических и геометрических типов SQL Server.
EFCore.CheckConstraints Добавляет соглашения по созданию моделей для ограничений проверки в реляционной базе данных.
EFCore.NamingConventions Добавляет соглашения по построению моделей для альтернативных имён таблицы, столбцов и ограничений реляционной базы данных.