Прочитать на английском

Поделиться через


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

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

Список служб

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

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

Примеры

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

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