语言

EntityFrameworkServicesBuilder 类

定义

为注册服务时要使用的数据库提供程序设计的生成器 API。

public class EntityFrameworkServicesBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.Extensions.DependencyInjection.IServiceCollection>
[System.Runtime.CompilerServices.Nullable(0)]
public class EntityFrameworkServicesBuilder
public class EntityFrameworkServicesBuilder
type EntityFrameworkServicesBuilder = class
    interface IInfrastructure<IServiceCollection>
[<System.Runtime.CompilerServices.Nullable(0)>]
type EntityFrameworkServicesBuilder = class
type EntityFrameworkServicesBuilder = class
Public Class EntityFrameworkServicesBuilder
Implements IInfrastructure(Of IServiceCollection)
Public Class EntityFrameworkServicesBuilder
继承
EntityFrameworkServicesBuilder
派生
特性
实现

注解

提供程序应创建此类的实例,使用其方法注册服务,然后调用 TryAddCoreServices() 以填写剩余的 Entity Framework 服务。

关系提供程序应改用“EntityFrameworkRelationalServicesBuilder”。

实体框架可确保服务注册到适当的范围。 在某些情况下,提供程序可能会将服务注册到不同的范围,但必须非常小心,即其所有依赖项都可以处理新范围,并且它不会导致依赖于它的服务出现问题。

有关详细信息和示例,请参阅 数据库提供程序和扩展的实现 。

构造函数

名称 说明
EntityFrameworkServicesBuilder(IServiceCollection)

数据库提供程序用于创建新的 EntityFrameworkServicesBuilder 提供程序服务注册。 关系提供程序应使用“EntityFrameworkRelationalServicesBuilder”。

字段

名称 说明
CoreServices

这是一个内部 API,支持Entity Framework Core基础结构,不受与公共 API 相同的兼容性标准的约束。 可以在任何版本中更改或删除它,而不通知。 只需在代码中直接使用它,并非常谨慎地知道这样做可能会导致应用程序在更新到新的Entity Framework Core版本时失败。

属性

名称 说明
ServiceCollectionMap

对基础 ServiceCollectionMap的访问。

方法

名称 说明
GetServiceCharacteristics(Type)

获取给定服务类型的值 ServiceCharacteristics 。

TryAdd(Type, Object)

仅当尚未注册实体框架服务的实现时,才添加一个实现。 此方法只能用于单一实例服务。

TryAdd(Type, Type, Func<IServiceProvider,Object>)

仅当尚未注册实体框架服务时,才为实体框架服务添加工厂。 服务的范围由 Entity Framework 自动定义。

TryAdd(Type, Type)

仅当尚未注册实体框架服务的实现时,才添加一个实现。 服务的范围由 Entity Framework 自动定义。

TryAdd<TService,TImplementation>()

仅当尚未注册实体框架服务的实现时,才添加一个实现。 服务的范围由 Entity Framework 自动定义。

TryAdd<TService,TImplementation>(Func<IServiceProvider,TImplementation>)

仅当尚未注册实体框架服务时,才为实体框架服务添加工厂。 服务的范围由 Entity Framework 自动定义。

TryAdd<TService>(Func<IServiceProvider,TService>)

仅当尚未注册实体框架服务时,才为实体框架服务添加工厂。 服务的范围由 Entity Framework 自动定义。

TryAdd<TService>(TService)

仅当尚未注册实体框架服务的实现时,才添加一个实现。 此方法只能用于单一实例服务。

TryAddCoreServices()

注册提供程序尚未注册的所有服务的默认实现。 数据库提供程序必须调用此方法作为服务注册的最后一步,即注册所有提供程序服务之后。

TryAddProviderSpecificServices(Action<ServiceCollectionMap>)

数据库提供程序应调用此方法以访问基础 ServiceCollectionMap ,以便可以注册特定于提供程序的服务。 请注意,实体框架服务的实现应直接在此方法上 EntityFrameworkServicesBuilder 注册,而不是通过此方法进行注册。

TryGetServiceCharacteristics(Type)

获取给定服务类型的值 ServiceCharacteristics 。

显式接口实现

名称 说明
IInfrastructure<IServiceCollection>.Instance

IServiceCollection获取正在配置的。

此属性适用于需要利用公共 API 图面中不直接公开的服务的扩展方法。

扩展方法

名称 说明
GetInfrastructure<T>(IInfrastructure<T>)

从正在使用的隐藏 IInfrastructure<T>属性中获取值。

此方法通常由数据库提供程序(和其他扩展)使用。 它通常不用于应用程序代码。

适用于